home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1994 March / Internet Info CD-ROM (Walnut Creek) (March 1994).iso / inet / internet-drafts / draft-ietf-snmpsec-secv2-02.txt < prev    next >
Text File  |  1993-03-03  |  108KB  |  3,009 lines

  1.  
  2.  
  3.  
  4.           Draft           Security Protocols for SNMPv2           Jan 93
  5.  
  6.  
  7.                                 Security Protocols
  8.                                for version 2 of the
  9.                    Simple Network Management Protocol (SNMPv2)
  10.  
  11.                              Tue Jan 26 15:33:46 1993                     |
  12.  
  13.  
  14.                                  James M. Galvin
  15.                         Trusted Information Systems, Inc.
  16.                                   galvin@tis.com
  17.  
  18.  
  19.                                  Keith McCloghrie
  20.                                 Hughes LAN Systems
  21.                                    kzm@hls.com
  22.  
  23.  
  24.                               James R. (Chuck) Davin
  25.                                      Bellcore
  26.                             davin@thumper.bellcore.com
  27.  
  28.  
  29.  
  30.  
  31.  
  32.                                Status of this Memo
  33.  
  34.           This document is an Internet Draft.  Internet Drafts are
  35.           working documents of the Internet Engineering Task Force
  36.           (IETF), its Areas, and its Working Groups.  Note that other
  37.           groups may also distribute working documents as Internet
  38.           Drafts.
  39.  
  40.           Internet Drafts are valid for a maximum of six months and may
  41.           be updated, replaced, or obsoleted by other documents at any
  42.           time.  It is inappropriate to use Internet Drafts as reference
  43.           material or to cite them other than as a "work in progress".
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.                               Expires July 26, 1993             [Page 1]
  58.  
  59.  
  60.  
  61.  
  62.  
  63.           Draft           Security Protocols for SNMPv2           Jan 93
  64.  
  65.  
  66.           1.  Introduction
  67.  
  68.           A network management system contains: several (potentially
  69.           many) nodes, each with a processing entity, termed an agent,
  70.           which has access to management instrumentation; at least one
  71.           management station; and, a management protocol, used to convey
  72.           management information between the agents and management
  73.           stations.  Operations of the protocol are carried out under an
  74.           administrative framework which defines both authentication and
  75.           authorization policies.
  76.  
  77.           Network management stations execute management applications
  78.           which monitor and control network elements.  Network elements
  79.           are devices such as hosts, routers, terminal servers, etc.,
  80.           which are monitored and controlled through access to their
  81.           management information.
  82.  
  83.           In the Administrative Model for SNMPv2 document [1], each
  84.           SNMPv2 party is, by definition, associated with a single
  85.           authentication protocol and a single privacy protocol.  It is
  86.           the purpose of this document, Security Protocols for SNMPv2,
  87.           to define one such authentication and one such privacy
  88.           protocol.
  89.  
  90.           The authentication protocol provides a mechanism by which
  91.           SNMPv2 management communications transmitted by the party may
  92.           be reliably identified as having originated from that party.
  93.           The authentication protocol defined in this memo also reliably
  94.           determines that the message received is the message that was
  95.           sent.
  96.  
  97.           The privacy protocol provides a mechanism by which SNMPv2
  98.           management communications transmitted to said party are
  99.           protected from disclosure.  The privacy protocol in this memo
  100.           specifies that only authenticated messages may be protected
  101.           from disclosure.
  102.  
  103.           These protocols are secure alternatives to the so-called
  104.           "trivial" protocol defined in [2].
  105.  
  106.                USE OF THE TRIVIAL PROTOCOL ALONE DOES NOT CONSTITUTE
  107.                SECURE NETWORK MANAGEMENT.  THEREFORE, A NETWORK
  108.                MANAGEMENT SYSTEM THAT IMPLEMENTS ONLY THE TRIVIAL
  109.                PROTOCOL IS NOT CONFORMANT TO THIS SPECIFICATION.
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.                               Expires July 26, 1993             [Page 2]
  117.  
  118.  
  119.  
  120.  
  121.  
  122.           Draft           Security Protocols for SNMPv2           Jan 93
  123.  
  124.  
  125.           The Digest Authentication Protocol is described in Section 3.
  126.           It provides a data integrity service by transmitting a message
  127.           digest - computed by the originator and verified by the
  128.           recipient - with each SNMPv2 message.  The data origin
  129.           authentication service is provided by prefixing the message
  130.           with a secret value known only to the originator and
  131.           recipient, prior to computing the digest.  Thus, data
  132.           integrity is supported explicitly while data origin
  133.           authentication is supported implicitly in the verification of
  134.           the digest.
  135.  
  136.           The Symmetric Privacy Protocol is described in Section 4.  It
  137.           protects messages from disclosure by encrypting their contents
  138.           according to a secret cryptographic key known only to the
  139.           originator and recipient.  The additional functionality
  140.           afforded by this protocol is assumed to justify its additional
  141.           computational cost.
  142.  
  143.           The Digest Authentication Protocol depends on the existence of
  144.           loosely synchronized clocks between the originator and
  145.           recipient of a message.  The protocol specification makes no
  146.           assumptions about the strategy by which such clocks are
  147.           synchronized.  Section 5.3 presents one strategy that is
  148.           particularly suited to the demands of SNMP network management.
  149.  
  150.           Both protocols described here require the sharing of secret
  151.           information between the originator of a message and its
  152.           recipient.  The protocol specifications assume the existence
  153.           of the necessary secrets.  The selection of such secrets and
  154.           their secure distribution to appropriate parties may be
  155.           accomplished by a variety of strategies.  Section 5.4 presents
  156.           one such strategy that is particularly suited to the demands
  157.           of SNMP network management.
  158.  
  159.  
  160.           1.1.  A Note on Terminology
  161.  
  162.           For the purpose of exposition, the original Internet-standard
  163.           Network Management Framework, as described in RFCs 1155, 1157,
  164.           and 1212, is termed the SNMP version 1 framework (SNMPv1).
  165.           The current framework is termed the SNMP version 2 framework
  166.           (SNMPv2).
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174.  
  175.                               Expires July 26, 1993             [Page 3]
  176.  
  177.  
  178.  
  179.  
  180.  
  181.           Draft           Security Protocols for SNMPv2           Jan 93
  182.  
  183.  
  184.           1.2.  Threats
  185.  
  186.           Several of the classical threats to network protocols are
  187.           applicable to the network management problem and therefore
  188.           would be applicable to any SNMPv2 security protocol.  Other
  189.           threats are not applicable to the network management problem.
  190.           This section discusses principal threats, secondary threats,
  191.           and threats which are of lesser importance.
  192.  
  193.           The principal threats against which any SNMPv2 security
  194.           protocol should provide protection are:
  195.  
  196.  
  197.           Modification of Information
  198.                The SNMPv2 protocol provides the means for management
  199.                stations to interrogate and to manipulate the value of
  200.                objects in a managed agent.  The modification threat is
  201.                the danger that some party may alter in-transit messages
  202.                generated by an authorized party in such a way as to
  203.                effect unauthorized management operations, including
  204.                falsifying the value of an object.
  205.  
  206.           Masquerade
  207.                The SNMPv2 administrative model includes an access
  208.                control model.  Access control necessarily depends on
  209.                knowledge of the origin of a message.  The masquerade
  210.                threat is the danger that management operations not
  211.                authorized for some party may be attempted by that party
  212.                by assuming the identity of another party that has the
  213.                appropriate authorizations.
  214.  
  215.           Two secondary threats are also identified.  The security
  216.           protocols defined in this memo do provide protection against:
  217.  
  218.           Message Stream Modification
  219.                The SNMPv2 protocol is based upon a connectionless
  220.                transport service which may operate over any subnetwork
  221.                service.  The re-ordering, delay or replay of messages
  222.                can and does occur through the natural operation of many
  223.                such subnetwork services.  The message stream
  224.                modification threat is the danger that messages may be
  225.                maliciously re-ordered, delayed or replayed to an extent
  226.                which is greater than can occur through the natural
  227.                operation of a subnetwork service, in order to effect
  228.                unauthorized management operations.
  229.  
  230.  
  231.  
  232.  
  233.  
  234.                               Expires July 26, 1993             [Page 4]
  235.  
  236.  
  237.  
  238.  
  239.  
  240.           Draft           Security Protocols for SNMPv2           Jan 93
  241.  
  242.  
  243.           Disclosure
  244.                The disclosure threat is the danger of eavesdropping on
  245.                the exchanges between managed agents and a management
  246.                station.  Protecting against this threat is mandatory
  247.                when the SNMPv2 is used to create new SNMPv2 parties [1]
  248.                on which subsequent secure operation might be based.
  249.                Protecting against the disclosure threat may also be
  250.                required as a matter of local policy.
  251.  
  252.           There are at least two threats that a SNMPv2 security protocol
  253.           need not protect against.  The security protocols defined in
  254.           this memo do not provide protection against:
  255.  
  256.           Denial of Service
  257.                A SNMPv2 security protocol need not attempt to address
  258.                the broad range of attacks by which service to authorized
  259.                parties is denied.  Indeed, such denial-of-service
  260.                attacks are in many cases indistinguishable from the type
  261.                of network failures with which any viable network
  262.                management protocol must cope as a matter of course.
  263.  
  264.           Traffic Analysis
  265.                In addition, a SNMPv2 security protocol need not attempt
  266.                to address traffic analysis attacks.  Indeed, many
  267.                traffic patterns are predictable - agents may be managed
  268.                on a regular basis by a relatively small number of
  269.                management stations - and therefore there is no
  270.                significant advantage afforded by protecting against
  271.                traffic analysis.
  272.  
  273.  
  274.           1.3.  Goals and Constraints
  275.  
  276.           Based on the foregoing account of threats in the SNMP network
  277.           management environment, the goals of a SNMPv2 security
  278.           protocol are enumerated below.
  279.  
  280.           (1)  The protocol should provide for verification that each
  281.                received SNMPv2 message has not been modified during its
  282.                transmission through the network in such a way that an
  283.                unauthorized management operation might result.
  284.  
  285.           (2)  The protocol should provide for verification of the
  286.                identity of the originator of each received SNMPv2
  287.                message.
  288.  
  289.  
  290.  
  291.  
  292.  
  293.                               Expires July 26, 1993             [Page 5]
  294.  
  295.  
  296.  
  297.  
  298.  
  299.           Draft           Security Protocols for SNMPv2           Jan 93
  300.  
  301.  
  302.           (3)  The protocol should provide that the apparent time of
  303.                generation for each received SNMPv2 message is recent.
  304.  
  305.           (4)  The protocol should provide, when necessary, that the
  306.                contents of each received SNMPv2 message are protected
  307.                from disclosure.
  308.  
  309.           In addition to the principal goal of supporting secure network
  310.           management, the design of any SNMPv2 security protocol is also
  311.           influenced by the following constraints:
  312.  
  313.           (1)  When the requirements of effective management in times of
  314.                network stress are inconsistent with those of security,
  315.                the former are preferred.
  316.  
  317.           (2)  Neither the security protocol nor its underlying security
  318.                mechanisms should depend upon the ready availability of
  319.                other network services (e.g., Network Time Protocol (NTP)
  320.                or secret/key management protocols).
  321.  
  322.           (3)  A security mechanism should entail no changes to the
  323.                basic SNMP network management philosophy.
  324.  
  325.  
  326.           1.4.  Security Services
  327.  
  328.           The security services necessary to support the goals of a
  329.           SNMPv2 security protocol are as follows.
  330.  
  331.           Data Integrity
  332.                is the provision of the property that data has not been
  333.                altered or destroyed in an unauthorized manner, nor have
  334.                data sequences been altered to an extent greater than can
  335.                occur non-maliciously.
  336.  
  337.           Data Origin Authentication
  338.                is the provision of the property that the claimed origin
  339.                of received data is corroborated.
  340.  
  341.           Data Confidentiality
  342.                is the provision of the property that information is not
  343.                made available or disclosed to unauthorized individuals,
  344.                entities, or processes.
  345.  
  346.  
  347.  
  348.  
  349.  
  350.  
  351.  
  352.                               Expires July 26, 1993             [Page 6]
  353.  
  354.  
  355.  
  356.  
  357.  
  358.           Draft           Security Protocols for SNMPv2           Jan 93
  359.  
  360.  
  361.           The protocols specified in this memo require both data
  362.           integrity and data origin authentication to be used at all
  363.           times.  For these protocols, it is not possible to realize
  364.           data integrity without data origin authentication, nor is it
  365.           possible to realize data origin authentication without data
  366.           integrity.
  367.  
  368.           Further, there is no provision for data confidentiality
  369.           without both data integrity and data origin authentication.
  370.  
  371.  
  372.           1.5.  Mechanisms
  373.  
  374.           The security protocols defined in this memo employ several
  375.           types of mechanisms in order to realize the goals and security
  376.           services described above:
  377.  
  378.           o    In support of data integrity, a message digest algorithm
  379.                is required.  A digest is calculated over an appropriate
  380.                portion of a SNMPv2 message and included as part of the
  381.                message sent to the recipient.
  382.  
  383.           o    In support of data origin authentication and data
  384.                integrity, the portion of a SNMPv2 message that is
  385.                digested is first prefixed with a secret value shared by
  386.                the originator of that message and its intended
  387.                recipient.
  388.  
  389.           o    To protect against the threat of message delay or replay,
  390.                (to an extent greater than can occur through normal
  391.                operation), a timestamp value is included in each message
  392.                generated.  A recipient evaluates the timestamp to
  393.                determine if the message is recent.  This protection
  394.                against the threat of message delay or replay does not
  395.                imply nor provide any protection against unauthorized
  396.                deletion or suppression of messages.  Other mechanisms
  397.                defined independently of the security protocol can also
  398.                be used to detect message replay (e.g., the request-id
  399.                [2]), or for set operations, the re-ordering, replay,
  400.                deletion, or suppression of messages (e.g., the MIB
  401.                variable snmpSetSerialNo [14]).
  402.  
  403.           o    In support of data confidentiality, a symmetric
  404.                encryption algorithm is required.  An appropriate portion
  405.                of the message is encrypted prior to being transmitted to
  406.  
  407.  
  408.  
  409.  
  410.  
  411.                               Expires July 26, 1993             [Page 7]
  412.  
  413.  
  414.  
  415.  
  416.  
  417.           Draft           Security Protocols for SNMPv2           Jan 93
  418.  
  419.  
  420.                its recipient.
  421.  
  422.           The security protocols in this memo are defined independently
  423.           of the particular choice of a message digest and encryption
  424.           algorithm - owing principally to the lack of a suitable metric
  425.           by which to evaluate the security of particular algorithm
  426.           choices.  However, in the interests of completeness and in
  427.           order to guarantee interoperability, Sections 1.5.1 and 1.5.2
  428.           specify particular choices, which are considered acceptably
  429.           secure as of this writing.  In the future, this memo may be
  430.           updated by the publication of a memo specifying substitute or
  431.           alternate choices of algorithms, i.e., a replacement for or
  432.           addition to the sections below.
  433.  
  434.  
  435.           1.5.1.  Message Digest Algorithm
  436.  
  437.           In support of data integrity, the use of the MD5 [3] message
  438.           digest algorithm is chosen.  A 128-bit digest is calculated
  439.           over the designated portion of a SNMPv2 message and included
  440.           as part of the message sent to the recipient.
  441.  
  442.           An appendix of [3] contains a C Programming Language
  443.           implementation of the algorithm.  This code was written with
  444.           portability being the principal objective.  Implementors may
  445.           wish to optimize the implementation with respect to the
  446.           characteristics of their hardware and software platforms.
  447.  
  448.           The use of this algorithm in conjunction with the Digest
  449.           Authentication Protocol (see Section 3) is identified by the
  450.           ASN.1 object identifier value v2md5AuthProtocol, defined in
  451.           [4].  (Note that this protocol is a modified version of the
  452.           md5AuthProtocol protocol defined in RFC 1352.)
  453.  
  454.           For any SNMPv2 party for which the authentication protocol is
  455.           v2md5AuthProtocol, the size of its private authentication key
  456.           is 16 octets.
  457.  
  458.           Within an authenticated management communication generated by
  459.           such a party, the size of the authDigest component of that
  460.           communication (see Section 3) is 16 octets.
  461.  
  462.  
  463.  
  464.  
  465.  
  466.  
  467.  
  468.  
  469.  
  470.                               Expires July 26, 1993             [Page 8]
  471.  
  472.  
  473.  
  474.  
  475.  
  476.           Draft           Security Protocols for SNMPv2           Jan 93
  477.  
  478.  
  479.           1.5.2.  Symmetric Encryption Algorithm
  480.  
  481.           In support of data confidentiality, the use of the Data
  482.           Encryption Standard (DES) in the Cipher Block Chaining mode of
  483.           operation is chosen.  The designated portion of a SNMPv2
  484.           message is encrypted and included as part of the message sent
  485.           to the recipient.
  486.  
  487.           Two organizations have published specifications defining the
  488.           DES: the National Institute of Standards and Technology (NIST)
  489.           [5] and the American National Standards Institute [6].  There
  490.           is a companion Modes of Operation specification for each
  491.           definition (see [7] and [8], respectively).
  492.  
  493.           The NIST has published three additional documents that
  494.           implementors may find useful.
  495.  
  496.           o    There is a document with guidelines for implementing and
  497.                using the DES, including functional specifications for
  498.                the DES and its modes of operation [9].
  499.  
  500.           o    There is a specification of a validation test suite for
  501.                the DES [10].  The suite is designed to test all aspects
  502.                of the DES and is useful for pinpointing specific
  503.                problems.
  504.  
  505.           o    There is a specification of a maintenance test for the
  506.                DES [11].  The test utilizes a minimal amount of data and
  507.                processing to test all components of the DES.  It
  508.                provides a simple yes-or-no indication of correct
  509.                operation and is useful to run as part of an
  510.                initialization step, e.g., when a computer reboots.
  511.  
  512.           The use of this algorithm in conjunction with the Symmetric
  513.           Privacy Protocol (see Section 4) is identified by the ASN.1
  514.           object identifier value desPrivProtocol, defined in [4].
  515.  
  516.           For any SNMPv2 party for which the privacy protocol is
  517.           desPrivProtocol, the size of the private privacy key is 16
  518.           octets, of which the first 8 octets are a DES key and the
  519.           second 8 octets are a DES Initialization Vector.  The 64-bit
  520.           DES key in the first 8 octets of the private key is a 56 bit
  521.           quantity used directly by the algorithm plus 8 parity bits -
  522.           arranged so that one parity bit is the least significant bit
  523.           of each octet.  The setting of the parity bits is ignored.
  524.  
  525.  
  526.  
  527.  
  528.  
  529.                               Expires July 26, 1993             [Page 9]
  530.  
  531.  
  532.  
  533.  
  534.  
  535.           Draft           Security Protocols for SNMPv2           Jan 93
  536.  
  537.  
  538.           The length of the octet sequence to be encrypted by the DES
  539.           must be an integral multiple of 8.  When encrypting, the data
  540.           should be padded at the end as necessary; the actual pad value
  541.           is insignificant.
  542.  
  543.           If the length of the octet sequence to be decrypted is not an
  544.           integral multiple of 8 octets, the processing of the octet
  545.           sequence should be halted and an appropriate exception noted.
  546.           Upon decrypting, the padding should be ignored.
  547.  
  548.  
  549.  
  550.  
  551.  
  552.  
  553.  
  554.  
  555.  
  556.  
  557.  
  558.  
  559.  
  560.  
  561.  
  562.  
  563.  
  564.  
  565.  
  566.  
  567.  
  568.  
  569.  
  570.  
  571.  
  572.  
  573.  
  574.  
  575.  
  576.  
  577.  
  578.  
  579.  
  580.  
  581.  
  582.  
  583.  
  584.  
  585.  
  586.  
  587.  
  588.                               Expires July 26, 1993            [Page 10]
  589.  
  590.  
  591.  
  592.  
  593.  
  594.           Draft           Security Protocols for SNMPv2           Jan 93
  595.  
  596.  
  597.           2.  SNMPv2 Party
  598.  
  599.           Recall from [1] that a SNMPv2 party is a conceptual, virtual
  600.           execution context whose operation is restricted (for security
  601.           or other purposes) to an administratively defined subset of
  602.           all possible operations of a particular SNMPv2 entity.  A
  603.           SNMPv2 entity is an actual process which performs network
  604.           management operations by generating and/or responding to
  605.           SNMPv2 protocol messages in the manner specified in [12].
  606.           Architecturally, every SNMPv2 entity maintains a local
  607.           database that represents all SNMPv2 parties known to it.
  608.  
  609.  
  610.  
  611.  
  612.  
  613.  
  614.  
  615.  
  616.  
  617.  
  618.  
  619.  
  620.  
  621.  
  622.  
  623.  
  624.  
  625.  
  626.  
  627.  
  628.  
  629.  
  630.  
  631.  
  632.  
  633.  
  634.  
  635.  
  636.  
  637.  
  638.  
  639.  
  640.  
  641.  
  642.  
  643.  
  644.  
  645.  
  646.  
  647.                               Expires July 26, 1993            [Page 11]
  648.  
  649.  
  650.  
  651.  
  652.  
  653.           Draft           Security Protocols for SNMPv2           Jan 93
  654.  
  655.  
  656.           A SNMPv2 party may be represented by an ASN.1 value with the
  657.           following syntax:
  658.  
  659.                SnmpParty ::= SEQUENCE {
  660.                  partyIdentity
  661.                     OBJECT IDENTIFIER,
  662.                  partyTDomain
  663.                     OBJECT IDENTIFIER,
  664.                  partyTAddress
  665.                     OCTET STRING,
  666.                  partyMaxMessageSize
  667.                     INTEGER,
  668.                  partyAuthProtocol
  669.                     OBJECT IDENTIFIER,
  670.                  partyAuthClock
  671.                     INTEGER,
  672.                  partyAuthPrivate
  673.                     OCTET STRING,
  674.                  partyAuthPublic
  675.                     OCTET STRING,
  676.                  partyAuthLifetime
  677.                     INTEGER,
  678.                  partyPrivProtocol
  679.                     OBJECT IDENTIFIER,
  680.                  partyPrivPrivate
  681.                     OCTET STRING,
  682.                  partyPrivPublic
  683.                     OCTET STRING
  684.                }
  685.  
  686.           For each SnmpParty value that represents a SNMPv2 party, the
  687.           generic significance of each of its components is defined in
  688.           [1].  For each SNMPv2 party that supports the generation of
  689.           messages using the Digest Authentication Protocol, additional,
  690.           special significance is attributed to certain components of
  691.           that party's representation:
  692.  
  693.           o    Its partyAuthProtocol component is called the
  694.                authentication protocol and identifies a combination of
  695.                the Digest Authentication Protocol with a particular
  696.                digest algorithm (such as that defined in Section 1.5.1).
  697.                This combined mechanism is used to authenticate the
  698.                origin and integrity of all messages generated by the
  699.                party.
  700.  
  701.  
  702.  
  703.  
  704.  
  705.  
  706.                               Expires July 26, 1993            [Page 12]
  707.  
  708.  
  709.  
  710.  
  711.  
  712.           Draft           Security Protocols for SNMPv2           Jan 93
  713.  
  714.  
  715.           o    Its partyAuthClock component is called the authentication
  716.                clock and represents a notion of the current time that is
  717.                specific to the party.
  718.  
  719.           o    Its partyAuthPrivate component is called the private
  720.                authentication key and represents any secret value needed
  721.                to support the Digest Authentication Protocol and
  722.                associated digest algorithm.
  723.  
  724.           o    Its partyAuthPublic component is called the public
  725.                authentication key and represents any public value that
  726.                may be needed to support the authentication protocol.
  727.                This component is not significant except as suggested in
  728.                Section 5.4.
  729.  
  730.           o    Its partyAuthLifetime component is called the lifetime
  731.                and represents an administrative upper bound on
  732.                acceptable delivery delay for protocol messages generated
  733.                by the party.
  734.  
  735.           For each SNMPv2 party that supports the receipt of messages
  736.           via the Symmetric Privacy Protocol, additional, special
  737.           significance is attributed to certain components of that
  738.           party's representation:
  739.  
  740.           o    Its partyPrivProtocol component is called the privacy
  741.                protocol and identifies a combination of the Symmetric
  742.                Privacy Protocol with a particular encryption algorithm
  743.                (such as that defined in Section 1.5.2).  This combined
  744.                mechanism is used to protect from disclosure all protocol
  745.                messages received by the party.
  746.  
  747.           o    Its partyPrivPrivate component is called the private
  748.                privacy key and represents any secret value needed to
  749.                support the Symmetric Privacy Protocol and associated
  750.                encryption algorithm.
  751.  
  752.           o    Its partyPrivPublic component is called the public
  753.                privacy key and represents any public value that may be
  754.                needed to support the privacy protocol.  This component
  755.                is not significant except as suggested in Section 5.4.
  756.  
  757.  
  758.  
  759.  
  760.  
  761.  
  762.  
  763.  
  764.  
  765.                               Expires July 26, 1993            [Page 13]
  766.  
  767.  
  768.  
  769.  
  770.  
  771.           Draft           Security Protocols for SNMPv2           Jan 93
  772.  
  773.  
  774.           3.  Digest Authentication Protocol
  775.  
  776.           This section describes the Digest Authentication Protocol.  It
  777.           provides both for verifying the integrity of a received
  778.           message (i.e., the message received is the message sent) and
  779.           for verifying the origin of a message (i.e., the reliable
  780.           identification of the originator).  The integrity of the
  781.           message is protected by computing a digest over an appropriate
  782.           portion of a message.  The digest is computed by the
  783.           originator of the message, transmitted with the message, and
  784.           verified by the recipient of the message.
  785.  
  786.           A secret value known only to the originator and recipient of
  787.           the message is prefixed to the message prior to the digest
  788.           computation.  Thus, the origin of the message is known
  789.           implicitly with the verification of the digest.
  790.  
  791.           A requirement on parties using this Digest Authentication
  792.           Protocol is that they shall not originate messages for
  793.           transmission to any destination party which does not also use
  794.           this Digest Authentication Protocol.  This restriction
  795.           excludes undesirable side effects of communication between a
  796.           party which uses these security protocols and a party which
  797.           does not.
  798.  
  799.           Recall from [1] that a SNMPv2 management communication is
  800.           represented by an ASN.1 value with the following syntax:
  801.  
  802.                SnmpMgmtCom ::= [2] IMPLICIT SEQUENCE {
  803.                  dstParty
  804.                     OBJECT IDENTIFIER,
  805.                  srcParty
  806.                     OBJECT IDENTIFIER,
  807.                  context
  808.                     OBJECT IDENTIFIER,
  809.                  pdu
  810.                     PDUs
  811.                }
  812.  
  813.           For each SnmpMgmtCom value that represents a SNMPv2 management
  814.           communication, the following statements are true:
  815.  
  816.           o    Its dstParty component is called the destination and
  817.                identifies the SNMPv2 party to which the communication is
  818.                directed.
  819.  
  820.  
  821.  
  822.  
  823.  
  824.                               Expires July 26, 1993            [Page 14]
  825.  
  826.  
  827.  
  828.  
  829.  
  830.           Draft           Security Protocols for SNMPv2           Jan 93
  831.  
  832.  
  833.           o    Its srcParty component is called the source and
  834.                identifies the SNMPv2 party from which the communication
  835.                is originated.
  836.  
  837.           o    Its context component identifies the SNMPv2 context
  838.                containing the management information referenced by the
  839.                communication.
  840.  
  841.           o    Its pdu component has the form and significance
  842.                attributed to it in [12].
  843.  
  844.           Recall from [1] that a SNMPv2 authenticated management
  845.           communication is represented by an ASN.1 value with the
  846.           following syntax:
  847.  
  848.                SnmpAuthMsg ::= [1] IMPLICIT SEQUENCE {
  849.                  authInfo
  850.                     ANY, - defined by authentication protocol
  851.                  authData
  852.                     SnmpMgmtCom
  853.                }
  854.  
  855.           For each SnmpAuthMsg value that represents a SNMPv2
  856.           authenticated management communication, the following
  857.           statements are true:
  858.  
  859.           o    Its authInfo component is called the authentication
  860.                information and represents information required in
  861.                support of the authentication protocol used by both the
  862.                SNMPv2 party originating the message, and the SNMPv2
  863.                party receiving the message.  The detailed significance
  864.                of the authentication information is specific to the
  865.                authentication protocol in use; it has no effect on the
  866.                application semantics of the communication other than its
  867.                use by the authentication protocol in determining whether
  868.                the communication is authentic or not.
  869.  
  870.           o    Its authData component is called the authentication data
  871.  
  872.  
  873.  
  874.  
  875.  
  876.  
  877.  
  878.  
  879.  
  880.  
  881.  
  882.  
  883.                               Expires July 26, 1993            [Page 15]
  884.  
  885.  
  886.  
  887.  
  888.  
  889.           Draft           Security Protocols for SNMPv2           Jan 93
  890.  
  891.  
  892.                and represents a SNMPv2 management communication.
  893.  
  894.           In support of the Digest Authentication Protocol, an authInfo
  895.           component is of type AuthInformation:
  896.  
  897.                AuthInformation ::= [2] IMPLICIT SEQUENCE {
  898.                  authDigest
  899.                     OCTET STRING,
  900.                  authDstTimestamp
  901.                     UInteger32,
  902.                  authSrcTimestamp
  903.                     UInteger32
  904.                }
  905.  
  906.           For each AuthInformation value that represents authentication
  907.           information, the following statements are true:
  908.  
  909.           o    Its authDigest component is called the authentication
  910.                digest and represents the digest computed over an
  911.                appropriate portion of the message, where the message is
  912.                temporarily prefixed with a secret value for the purposes
  913.                of computing the digest.
  914.  
  915.           o    Its authSrcTimestamp component is called the
  916.                authentication timestamp and represents the time of the
  917.                generation of the message according to the partyAuthClock
  918.                of the SNMPv2 party that originated it.  Note that the
  919.                granularity of the authentication timestamp is 1 second.
  920.  
  921.           o    Its authDstTimestamp component is called the
  922.                authentication timestamp and represents the time of the
  923.                generation of the message according to the partyAuthClock
  924.                of the SNMPv2 party that is to receive it.  Note that the
  925.                granularity of the authentication timestamp is 1 second.
  926.  
  927.  
  928.           3.1.  Generating a Message
  929.  
  930.           This section describes the behavior of a SNMPv2 entity when it
  931.           acts as a SNMPv2 party for which the authentication protocol
  932.           is administratively specified as the Digest Authentication
  933.           Protocol.  Insofar as the behavior of a SNMPv2 entity when
  934.           transmitting protocol messages is defined generically in [1],
  935.           only those aspects of that behavior that are specific to the
  936.           Digest Authentication Protocol are described below.  In
  937.  
  938.  
  939.  
  940.  
  941.  
  942.                               Expires July 26, 1993            [Page 16]
  943.  
  944.  
  945.  
  946.  
  947.  
  948.           Draft           Security Protocols for SNMPv2           Jan 93
  949.  
  950.  
  951.           particular, this section describes the encapsulation of a
  952.           SNMPv2 management communication into a SNMPv2 authenticated
  953.           management communication.
  954.  
  955.           According to Section 3.1 of [1], a SnmpAuthMsg value is
  956.           constructed during Step 3 of generic processing.  In
  957.           particular, it states the authInfo component is constructed
  958.           according to the authentication protocol identified for the
  959.           SNMPv2 party originating the message.  When the relevant
  960.           authentication protocol is the Digest Authentication Protocol,
  961.           the procedure performed by a SNMPv2 entity whenever a
  962.           management communication is to be transmitted by a SNMPv2
  963.           party is as follows.
  964.  
  965.           (1)  The local database is consulted to determine the
  966.                authentication clock and private authentication key
  967.                (extracted, for example, according to the conventions
  968.                defined in Section 1.5.1) of the SNMPv2 party originating
  969.                the message.  The local database is also consulted to
  970.                determine the authentication clock of the receiving
  971.                SNMPv2 party.
  972.  
  973.           (2)  The authSrcTimestamp component is set to the retrieved
  974.                authentication clock value of the message's source.  The
  975.                authDstTimestamp component is set to the retrieved
  976.                authentication clock value of the message's intended
  977.                recipient.
  978.  
  979.           (3)  The authentication digest is temporarily set to the
  980.                private authentication key of the SNMPv2 party
  981.                originating the message.  The SnmpAuthMsg value is
  982.                serialized according to the conventions of [13] and [12].
  983.                A digest is computed over the octet sequence representing
  984.                that serialized value using, for example, the algorithm
  985.                specified in Section 1.5.1.  The authDigest component is
  986.                set to the computed digest value.
  987.  
  988.           As set forth in [1], the SnmpAuthMsg value is then
  989.           encapsulated according to the appropriate privacy protocol
  990.           into a SnmpPrivMsg value.  This latter value is then
  991.           serialized and transmitted to the receiving SNMPv2 party.
  992.  
  993.  
  994.  
  995.  
  996.  
  997.  
  998.  
  999.  
  1000.  
  1001.                               Expires July 26, 1993            [Page 17]
  1002.  
  1003.  
  1004.  
  1005.  
  1006.  
  1007.           Draft           Security Protocols for SNMPv2           Jan 93
  1008.  
  1009.  
  1010.           3.2.  Receiving a Message
  1011.  
  1012.           This section describes the behavior of a SNMPv2 entity upon
  1013.           receipt of a protocol message from a SNMPv2 party for which
  1014.           the authentication protocol is administratively specified as
  1015.           the Digest Authentication Protocol.  Insofar as the behavior
  1016.           of a SNMPv2 entity when receiving protocol messages is defined
  1017.           generically in [1], only those aspects of that behavior that
  1018.           are specific to the Digest Authentication Protocol are
  1019.           described below.
  1020.  
  1021.           According to Section 3.2 of [1], a SnmpAuthMsg value is
  1022.           evaluated during Step 9 of generic processing.  In particular,
  1023.           it states the SnmpAuthMsg value is evaluated according to the
  1024.           authentication protocol identified for the SNMPv2 party that
  1025.           originated the message.  When the relevant authentication
  1026.           protocol is the Digest Authentication Protocol, the procedure
  1027.           performed by a SNMPv2 entity whenever a management
  1028.           communication is received by a SNMPv2 party is as follows.
  1029.  
  1030.           (1)  If the ASN.1 type of the authInfo component is not
  1031.                AuthInformation, the message is evaluated as unauthentic,
  1032.                and the snmpStatsBadAuths counter [14] is incremented.
  1033.                Otherwise, the authSrcTimestamp, authDstTimestamp, and
  1034.                authDigest components are extracted from the SnmpAuthMsg
  1035.                value.
  1036.  
  1037.           (2)  The local database is consulted to determine the
  1038.                authentication clock, private authentication key
  1039.                (extracted, for example, according to the conventions
  1040.                defined in Section 1.5.1), and lifetime of the SNMPv2
  1041.                party that originated the message.
  1042.  
  1043.           (3)  If the authSrcTimestamp component plus the lifetime is
  1044.                less than the authentication clock, the message is
  1045.                evaluated as unauthentic, and the snmpStatsNotInLifeTimes
  1046.                counter [14] is incremented.
  1047.  
  1048.           (4)  The authDigest component is extracted and temporarily
  1049.                recorded.
  1050.  
  1051.           (5)  A new SnmpAuthMsg value is constructed such that its
  1052.                authDigest component is set to the private authentication
  1053.                key and its other components are set to the value of the
  1054.                corresponding components in the received SnmpAuthMsg
  1055.  
  1056.  
  1057.  
  1058.  
  1059.  
  1060.                               Expires July 26, 1993            [Page 18]
  1061.  
  1062.  
  1063.  
  1064.  
  1065.  
  1066.           Draft           Security Protocols for SNMPv2           Jan 93
  1067.  
  1068.  
  1069.                value.  This new SnmpAuthMsg value is serialized
  1070.                according to the conventions of [13] and [12].  A digest
  1071.                is computed over the octet sequence representing that
  1072.                serialized value using, for example, the algorithm
  1073.                specified in Section 1.5.1.
  1074.  
  1075.                                             NOTE
  1076.                     Because serialization rules are unambiguous but may
  1077.                     not be unique, great care must be taken in
  1078.                     reconstructing the serialized value prior to
  1079.                     computing the digest.  Implementations may find it
  1080.                     useful to keep a copy of the original serialized
  1081.                     value and then simply modify the octets which
  1082.                     directly correspond to the placement of the
  1083.                     authDigest component, rather than re-applying the
  1084.                     serialization algorithm to the new SnmpAuthMsg
  1085.                     value.
  1086.  
  1087.           (6)  If the computed digest value is not equal to the digest
  1088.                value temporarily recorded in step 4 above, the message
  1089.                is evaluated as unauthentic, and the
  1090.                snmpStatsWrongDigestValues counter [14] is incremented.
  1091.  
  1092.           (7)  The message is evaluated as authentic.
  1093.  
  1094.           (8)  The local database is consulted for access privileges
  1095.                permitted by the local access policy to the originating
  1096.                SNMPv2 party with respect to the receiving SNMPv2 party.
  1097.                If any level of access is permitted, then:
  1098.  
  1099.                  the authentication clock value locally recorded for the
  1100.                  originating SNMPv2 party is advanced to the
  1101.                  authSrcTimestamp value if this latter exceeds the
  1102.                  recorded value; and,
  1103.  
  1104.                  the authentication clock value locally recorded for the
  1105.                  receiving SNMPv2 party is advanced to the
  1106.                  authDstTimestamp value if this latter exceeds the
  1107.                  recorded value.
  1108.  
  1109.               (Note that this step is conceptually independent from
  1110.               Steps 15-17 of Section 3.2 in [1]).
  1111.  
  1112.           If the SnmpAuthMsg value is evaluated as unauthentic, an
  1113.           authentication failure is noted and the received message is
  1114.  
  1115.  
  1116.  
  1117.  
  1118.  
  1119.                               Expires July 26, 1993            [Page 19]
  1120.  
  1121.  
  1122.  
  1123.  
  1124.  
  1125.           Draft           Security Protocols for SNMPv2           Jan 93
  1126.  
  1127.  
  1128.           discarded without further processing.  Otherwise, processing
  1129.           of the received message continues as specified in [1].
  1130.  
  1131.  
  1132.  
  1133.  
  1134.  
  1135.  
  1136.  
  1137.  
  1138.  
  1139.  
  1140.  
  1141.  
  1142.  
  1143.  
  1144.  
  1145.  
  1146.  
  1147.  
  1148.  
  1149.  
  1150.  
  1151.  
  1152.  
  1153.  
  1154.  
  1155.  
  1156.  
  1157.  
  1158.  
  1159.  
  1160.  
  1161.  
  1162.  
  1163.  
  1164.  
  1165.  
  1166.  
  1167.  
  1168.  
  1169.  
  1170.  
  1171.  
  1172.  
  1173.  
  1174.  
  1175.  
  1176.  
  1177.  
  1178.                               Expires July 26, 1993            [Page 20]
  1179.  
  1180.  
  1181.  
  1182.  
  1183.  
  1184.           Draft           Security Protocols for SNMPv2           Jan 93
  1185.  
  1186.  
  1187.           4.  Symmetric Privacy Protocol
  1188.  
  1189.           This section describes the Symmetric Privacy Protocol.  It
  1190.           provides for protection from disclosure of a received message.
  1191.           An appropriate portion of the message is encrypted according
  1192.           to a secret key known only to the originator and recipient of
  1193.           the message.
  1194.  
  1195.           This protocol assumes the underlying mechanism is a symmetric
  1196.           encryption algorithm.  In addition, the message to be
  1197.           encrypted must be protected according to the conventions of
  1198.           the Digest Authentication Protocol.
  1199.  
  1200.           Recall from [1] that a SNMPv2 private management communication
  1201.           is represented by an ASN.1 value with the following syntax:
  1202.  
  1203.                SnmpPrivMsg ::= [1] IMPLICIT SEQUENCE {
  1204.                  privDst
  1205.                     OBJECT IDENTIFIER,
  1206.                  privData
  1207.                     [1] IMPLICIT OCTET STRING
  1208.                }
  1209.  
  1210.           For each SnmpPrivMsg value that represents a SNMPv2 private
  1211.           management communication, the following statements are true:
  1212.  
  1213.           o    Its privDst component is called the privacy destination
  1214.                and identifies the SNMPv2 party to which the
  1215.                communication is directed.
  1216.  
  1217.           o    Its privData component is called the privacy data and
  1218.                represents the (possibly encrypted) serialization
  1219.                (according to the conventions of [13] and [12]) of a
  1220.                SNMPv2 authenticated management communication.
  1221.  
  1222.  
  1223.           4.1.  Generating a Message
  1224.  
  1225.           This section describes the behavior of a SNMPv2 entity when it
  1226.           communicates with a SNMPv2 party for which the privacy
  1227.           protocol is administratively specified as the Symmetric
  1228.           Privacy Protocol.  Insofar as the behavior of a SNMPv2 entity
  1229.           when transmitting a protocol message is defined generically in
  1230.           [1], only those aspects of that behavior that are specific to
  1231.           the Symmetric Privacy Protocol are described below.  In
  1232.  
  1233.  
  1234.  
  1235.  
  1236.  
  1237.                               Expires July 26, 1993            [Page 21]
  1238.  
  1239.  
  1240.  
  1241.  
  1242.  
  1243.           Draft           Security Protocols for SNMPv2           Jan 93
  1244.  
  1245.  
  1246.           particular, this section describes the encapsulation of a
  1247.           SNMPv2 authenticated management communication into a SNMPv2
  1248.           private management communication.
  1249.  
  1250.           According to Section 3.1 of [1], a SnmpPrivMsg value is
  1251.           constructed during Step 5 of generic processing.  In
  1252.           particular, it states the privData component is constructed
  1253.           according to the privacy protocol identified for the SNMPv2
  1254.           party receiving the message.  When the relevant privacy
  1255.           protocol is the Symmetric Privacy Protocol, the procedure
  1256.           performed by a SNMPv2 entity whenever a management
  1257.           communication is to be transmitted by a SNMPv2 party is as
  1258.           follows.
  1259.  
  1260.           (1)  If the SnmpAuthMsg value is not authenticated according
  1261.                to the conventions of the Digest Authentication Protocol,
  1262.                the generation of the private management communication
  1263.                fails according to a local procedure, without further
  1264.                processing.
  1265.  
  1266.           (2)  The local database is consulted to determine the private
  1267.                privacy key of the SNMPv2 party receiving the message
  1268.                (represented, for example, according to the conventions
  1269.                defined in Section 1.5.2).
  1270.  
  1271.           (3)  The SnmpAuthMsg value is serialized according to the
  1272.                conventions of [13] and [12].
  1273.  
  1274.           (4)  The octet sequence representing the serialized
  1275.                SnmpAuthMsg value is encrypted using, for example, the
  1276.                algorithm specified in Section 1.5.2 and the extracted
  1277.                private privacy key.
  1278.  
  1279.           (5)  The privData component is set to the encrypted value.
  1280.  
  1281.           As set forth in [1], the SnmpPrivMsg value is then serialized
  1282.           and transmitted to the receiving SNMPv2 party.
  1283.  
  1284.  
  1285.           4.2.  Receiving a Message
  1286.  
  1287.           This section describes the behavior of a SNMPv2 entity when it
  1288.           acts as a SNMPv2 party for which the privacy protocol is
  1289.           administratively specified as the Symmetric Privacy Protocol.
  1290.           Insofar as the behavior of a SNMPv2 entity when receiving a
  1291.  
  1292.  
  1293.  
  1294.  
  1295.  
  1296.                               Expires July 26, 1993            [Page 22]
  1297.  
  1298.  
  1299.  
  1300.  
  1301.  
  1302.           Draft           Security Protocols for SNMPv2           Jan 93
  1303.  
  1304.  
  1305.           protocol message is defined generically in [1], only those
  1306.           aspects of that behavior that are specific to the Symmetric
  1307.           Privacy Protocol are described below.
  1308.  
  1309.           According to Section 3.2 of [1], the privData component of a
  1310.           received SnmpPrivMsg value is evaluated during Step 4 of
  1311.           generic processing.  In particular, it states the privData
  1312.           component is evaluated according to the privacy protocol
  1313.           identified for the SNMPv2 party receiving the message.  When
  1314.           the relevant privacy protocol is the Symmetric Privacy
  1315.           Protocol, the procedure performed by a SNMPv2 entity whenever
  1316.           a management communication is received by a SNMPv2 party is as
  1317.           follows.
  1318.  
  1319.           (1)  The local database is consulted to determine the private
  1320.                privacy key of the SNMPv2 party receiving the message
  1321.                (represented, for example, according to the conventions
  1322.                defined in Section 1.5.2).
  1323.  
  1324.           (2)  The contents octets of the privData component are
  1325.                decrypted using, for example, the algorithm specified in
  1326.                Section 1.5.2 and the extracted private privacy key.
  1327.  
  1328.           Processing of the received message continues as specified in
  1329.           [1].
  1330.  
  1331.  
  1332.  
  1333.  
  1334.  
  1335.  
  1336.  
  1337.  
  1338.  
  1339.  
  1340.  
  1341.  
  1342.  
  1343.  
  1344.  
  1345.  
  1346.  
  1347.  
  1348.  
  1349.  
  1350.  
  1351.  
  1352.  
  1353.  
  1354.  
  1355.                               Expires July 26, 1993            [Page 23]
  1356.  
  1357.  
  1358.  
  1359.  
  1360.  
  1361.           Draft           Security Protocols for SNMPv2           Jan 93
  1362.  
  1363.  
  1364.           5.  Clock and Secret Distribution
  1365.  
  1366.           The protocols described in Sections 3 and 4 assume the
  1367.           existence of loosely synchronized clocks and shared secret
  1368.           values.  Three requirements constrain the strategy by which
  1369.           clock values and secrets are distributed.
  1370.  
  1371.           o    If the value of an authentication clock is decreased, the
  1372.                private authentication key must be changed concurrently.
  1373.  
  1374.                When the value of an authentication clock is decreased,
  1375.                messages that have been sent with a timestamp value
  1376.                between the value of the authentication clock and its new
  1377.                value may be replayed.  Changing the private
  1378.                authentication key obviates this threat.
  1379.  
  1380.           o    The private authentication key and private privacy key
  1381.                must be known only to the parties requiring knowledge of
  1382.                them.
  1383.  
  1384.                Protecting the secrets from disclosure is critical to the
  1385.                security of the protocols.  Knowledge of the secrets must
  1386.                be as restricted as possible within an implementation.
  1387.                In particular, although the secrets may be known to one
  1388.                or more persons during the initial configuration of a
  1389.                device, the secrets should be changed immediately after
  1390.                configuration such that their actual value is known only
  1391.                to the software.  A management station has the additional
  1392.                responsibility of recovering the state of all parties
  1393.                whenever it boots, and it may address this responsibility
  1394.                by recording the secrets on a long-term storage device.
  1395.                Access to information on this device must be as
  1396.                restricted as is practically possible.
  1397.  
  1398.           o    There must exist at least one SNMPv2 entity that assumes
  1399.                the role of a responsible management station.
  1400.  
  1401.                This management station is responsible for ensuring that
  1402.                all authentication clocks are synchronized and for
  1403.                changing the secret values when necessary.  Although more
  1404.                than one management station may share this
  1405.                responsibility, their coordination is essential to the
  1406.                secure management of the network.  The mechanism by which
  1407.                multiple management stations ensure that no more than one
  1408.                of them attempts to synchronize the clocks or update the
  1409.  
  1410.  
  1411.  
  1412.  
  1413.  
  1414.                               Expires July 26, 1993            [Page 24]
  1415.  
  1416.  
  1417.  
  1418.  
  1419.  
  1420.           Draft           Security Protocols for SNMPv2           Jan 93
  1421.  
  1422.  
  1423.                secrets at any one time is a local implementation issue.
  1424.  
  1425.                A responsible management station may either support clock
  1426.                synchronization and secret distribution as separate
  1427.                functions, or combine them into a single functional unit.
  1428.  
  1429.           The first section below specifies the procedures by which a
  1430.           SNMPv2 entity is initially configured.  The next two sections
  1431.           describe one strategy for distributing clock values and one
  1432.           for determining a synchronized clock value among SNMPv2
  1433.           parties supporting the Digest Authentication Protocol.  For
  1434.           SNMPv2 parties supporting the Symmetric Privacy Protocol, the
  1435.           next section describes a strategy for distributing secret
  1436.           values.  The last section specifies the procedures by which a
  1437.           SNMPv2 entity recovers from a "crash."
  1438.  
  1439.  
  1440.           5.1.  Initial Configuration
  1441.  
  1442.           This section describes the initial configuration of a SNMPv2
  1443.           entity that supports the Digest Authentication Protocol or
  1444.           both the Digest Authentication Protocol and the Symmetric
  1445.           Privacy Protocol.
  1446.  
  1447.           When a network device is first installed, its initial, secure
  1448.           configuration must be done manually, i.e., a person must
  1449.           physically visit the device and enter the initial secret
  1450.           values for at least its first secure SNMPv2 party.  This
  1451.           requirement suggests that the person will have knowledge of
  1452.           the initial secret values.
  1453.  
  1454.           In general, the security of a system is enhanced as the number
  1455.           of entities that know a secret is reduced.  Requiring a person
  1456.           to physically visit a device every time a SNMPv2 party is
  1457.           configured not only exposes the secrets unnecessarily but is
  1458.           administratively prohibitive.  In particular, when MD5 is
  1459.           used, the initial authentication secret is 128 bits long and
  1460.           when DES is used an additional 128 bits are needed - 64 bits
  1461.           each for the key and initialization vector.  Clearly, these
  1462.           values will need to be recorded on a medium in order to be
  1463.           transported between a responsible management station and a
  1464.           managed agent.  The recommended procedure is to configure a
  1465.           small set of initial SNMPv2 parties for each SNMPv2 entity,
  1466.           one pair of which may be used initially to configure all other
  1467.           SNMPv2 parties.
  1468.  
  1469.  
  1470.  
  1471.  
  1472.  
  1473.                               Expires July 26, 1993            [Page 25]
  1474.  
  1475.  
  1476.  
  1477.  
  1478.  
  1479.           Draft           Security Protocols for SNMPv2           Jan 93
  1480.  
  1481.  
  1482.           In fact, there is a minimal, useful set of SNMPv2 parties that
  1483.           could be configured between each responsible management
  1484.           station and managed agent.  This minimal set includes one of
  1485.           each of the following for both the responsible management
  1486.           station and the managed agent:
  1487.  
  1488.           o    a SNMPv2 party for which the authentication protocol and
  1489.                privacy protocol are the values noAuth and noPriv,
  1490.                respectively,
  1491.  
  1492.           o    a SNMPv2 party for which the authentication protocol
  1493.                identifies the mechanism defined in Section 1.5.1 and its
  1494.                privacy protocol is the value noPriv, and
  1495.  
  1496.           o    a SNMPv2 party for which the authentication protocol and
  1497.                privacy protocol identify the mechanisms defined in
  1498.                Section 1.5.1 and Section 1.5.2, respectively.
  1499.  
  1500.           The last of these SNMPv2 parties in both the responsible
  1501.           management station and the managed agent could be used to
  1502.           create all other SNMPv2 parties.
  1503.  
  1504.           Configuring one pair of SNMPv2 parties to be used to configure
  1505.           all other parties has the advantage of exposing only one pair
  1506.           of secrets - the secrets used to configure the minimal, useful
  1507.           set identified above.  To limit this exposure, the responsible
  1508.           management station should change these values as its first
  1509.           operation upon completion of the initial configuration.  In
  1510.           this way, secrets are known only to the peers requiring
  1511.           knowledge of them in order to communicate.
  1512.  
  1513.           The Management Information Base (MIB) document [4] supporting
  1514.           these security protocols specifies 6 initial party identities
  1515.           and initial values, which, by convention, are assigned to the
  1516.           parties and their associated parameters.
  1517.  
  1518.           These 6 initial parties are required to exist as part of the
  1519.           configuration of implementations when first installed, with
  1520.           the exception that implementations not providing support for a
  1521.           privacy protocol only need the 4 initial parties for which the
  1522.           privacy protocol is noPriv.  When installing a managed agent,
  1523.           these parties need to be configured with their initial
  1524.           secrets, etc., both in the responsible management station and
  1525.           in the new agent.
  1526.  
  1527.  
  1528.  
  1529.  
  1530.  
  1531.  
  1532.                               Expires July 26, 1993            [Page 26]
  1533.  
  1534.  
  1535.  
  1536.  
  1537.  
  1538.           Draft           Security Protocols for SNMPv2           Jan 93
  1539.  
  1540.  
  1541.           If the responsible management station is configured first, it
  1542.           can be used to generate the initial secrets and provide them
  1543.           to a person, on a suitable medium, for distribution to the
  1544.           managed agent.  The following sequence of steps describes the
  1545.           initial configuration of a managed agent and its responsible
  1546.           management station.
  1547.  
  1548.           (1)  Determine the initial values for each of the attributes
  1549.                of the SNMPv2 party to be configured.  Some of these
  1550.                values may be computed by the responsible management
  1551.                station, some may be specified in the MIB document, and
  1552.                some may be administratively determined.
  1553.  
  1554.           (2)  Configure the parties in the responsible management
  1555.                station, according to the set of initial values.  If the
  1556.                management station is computing some initial values to be
  1557.                entered into the agent, an appropriate medium must be
  1558.                present to record the values.
  1559.  
  1560.           (3)  Configure the parties in the managed agent, according to
  1561.                the set of initial values.
  1562.  
  1563.           (4)  The responsible management station must synchronize the
  1564.                authentication clock values for each party it shares with
  1565.                each managed agent.  Section 5.3 specifies one strategy
  1566.                by which this could be accomplished.
  1567.  
  1568.           (5)  The responsible management station should change the
  1569.                secret values manually configured to ensure the actual
  1570.                values are known only to the peers requiring knowledge of
  1571.                them in order to communicate.  To do this, the management
  1572.                station generates new secrets for each party to be
  1573.                reconfigured and distributes the updates using any
  1574.                strategy which protects the new values from disclosure;
  1575.                use of a SNMPv2 set operation acting on the managed
  1576.                objects defined in [4] is such a strategy.  Upon
  1577.                receiving positive acknowledgement that the new values
  1578.                have been distributed, the management station should
  1579.                update its local database with the new values.
  1580.  
  1581.           If the managed agent does not support a protocol that protects
  1582.           messages from disclosure, e.g., the Symmetric Privacy Protocol
  1583.           (see section 5.4), then the distribution of new secrets, after
  1584.           the compromise of existing secrets, is not possible.  In this
  1585.           case, the new secrets can only be distributed by a physical
  1586.  
  1587.  
  1588.  
  1589.  
  1590.  
  1591.                               Expires July 26, 1993            [Page 27]
  1592.  
  1593.  
  1594.  
  1595.  
  1596.  
  1597.           Draft           Security Protocols for SNMPv2           Jan 93
  1598.  
  1599.  
  1600.           visit to the device.
  1601.  
  1602.           If there are other SNMPv2 protocol entities requiring
  1603.           knowledge of the secrets, the responsible management station
  1604.           must distribute the information upon completion of the initial
  1605.           configuration.  The considerations, mentioned above,
  1606.           concerning the protection of secrets from disclosure, also
  1607.           apply in this case.
  1608.  
  1609.  
  1610.           5.2.  Clock Distribution
  1611.  
  1612.           A responsible management station must ensure that the
  1613.           authentication clock value for each SNMPv2 party for which it
  1614.           is responsible
  1615.  
  1616.           o    is loosely synchronized among all the local databases in
  1617.                which it appears,
  1618.  
  1619.           o    is reset, as indicated below, upon reaching its maximal
  1620.                value, and
  1621.  
  1622.           o    is non-decreasing, except as indicated below.
  1623.  
  1624.           The skew among the clock values must be accounted for in the
  1625.           lifetime value, in addition to the expected communication
  1626.           delivery delay.
  1627.  
  1628.           A skewed authentication clock may be detected by a number of
  1629.           strategies, including knowledge of the accuracy of the system
  1630.           clock, unauthenticated queries of the party database, and
  1631.           recognition of authentication failures originated by the
  1632.           party.
  1633.  
  1634.           Whenever clock skew is detected, and whenever the SNMPv2
  1635.           entities at both the responsible management station and the
  1636.           relevant managed agent support an appropriate privacy protocol
  1637.           (e.g., the Symmetric Privacy Protocol), a straightforward
  1638.           strategy for the correction of clock skew is simultaneous
  1639.           alteration of authentication clock and private key for the
  1640.           relevant SNMPv2 party.  If the request to alter the key and
  1641.           clock for a particular party originates from that same party,
  1642.           then, prior to transmitting that request, the local notion of
  1643.           the authentication clock is artificially advanced to assure
  1644.           acceptance of the request as authentic.
  1645.  
  1646.  
  1647.  
  1648.  
  1649.  
  1650.                               Expires July 26, 1993            [Page 28]
  1651.  
  1652.  
  1653.  
  1654.  
  1655.  
  1656.           Draft           Security Protocols for SNMPv2           Jan 93
  1657.  
  1658.  
  1659.           More generally, however, since an authentication clock value
  1660.           need not be protected from disclosure, it is not necessary
  1661.           that a managed agent support a privacy protocol in order for a
  1662.           responsible management station to correct skewed clock values.
  1663.           The procedure for correcting clock skew in the general case is
  1664.           presented in Section 5.3.
  1665.  
  1666.           In addition to correcting skewed notions of authentication
  1667.           clocks, every SNMPv2 entity must react correctly as an
  1668.           authentication clock approaches its maximal value.  If the
  1669.           authentication clock for a particular SNMPv2 party ever
  1670.           reaches the maximal time value, the clock must halt at that
  1671.           value.  (The value of interest may be the maximum less
  1672.           lifetime.  When authenticating a message, its authentication
  1673.           timestamp is added to lifetime and compared to the
  1674.           authentication clock.  A SNMPv2 entity must guarantee that the
  1675.           sum is never greater than the maximal time value.) In this
  1676.           state, the only authenticated request a management station
  1677.           should generate for this party is one that alters the value of
  1678.           at least its authentication clock and private authentication
  1679.           key.  In order to reset these values, the responsible
  1680.           management station may set the authentication timestamp in the
  1681.           message to the maximal time value.
  1682.  
  1683.           The value of the authentication clock for a particular SNMPv2
  1684.           party must never be altered such that its new value is less
  1685.           than its old value, unless its private authentication key is
  1686.           also altered at the same time.
  1687.  
  1688.  
  1689.           5.3.  Clock Synchronization
  1690.  
  1691.           Unless the secrets are changed at the same time, the correct
  1692.           way to synchronize clocks is to advance the slower clock to be
  1693.           equal to the faster clock.  Suppose that party agentParty is
  1694.           realized by the SNMPv2 entity in a managed agent; suppose that
  1695.           party mgrParty is realized by the SNMPv2 entity in the
  1696.           corresponding responsible management station.  For any pair of
  1697.           parties, there are four possible conditions of the
  1698.           authentication clocks that could require correction:
  1699.  
  1700.           (1)  The management station's notion of the value of the
  1701.                authentication clock for agentParty exceeds the agent's
  1702.                notion.
  1703.  
  1704.  
  1705.  
  1706.  
  1707.  
  1708.  
  1709.                               Expires July 26, 1993            [Page 29]
  1710.  
  1711.  
  1712.  
  1713.  
  1714.  
  1715.           Draft           Security Protocols for SNMPv2           Jan 93
  1716.  
  1717.  
  1718.           (2)  The management station's notion of the value of the
  1719.                authentication clock for mgrParty exceeds the agent's
  1720.                notion.
  1721.  
  1722.           (3)  The agent's notion of the value of the authentication
  1723.                clock for agentParty exceeds the management station's
  1724.                notion.
  1725.  
  1726.           (4)  The agent's notion of the value of the authentication
  1727.                clock for mgrParty exceeds the management station's
  1728.                notion.
  1729.  
  1730.           The selective clock acceleration mechanism intrinsic to the
  1731.           protocol corrects conditions 1, 2 and 3 as part of the normal
  1732.           processing of an authentic message.  Therefore, the clock
  1733.           adjustment procedure below does not provide for any
  1734.           adjustments in those cases.  Rather, the following sequence of
  1735.           steps specifies how the clocks may be synchronized when
  1736.           condition 4 is manifest.
  1737.  
  1738.           (1)  The responsible management station saves its existing
  1739.                notion of the authentication clock for the party
  1740.                mgrParty.
  1741.  
  1742.           (2)  The responsible management station retrieves the
  1743.                authentication clock value for mgrParty from the agent.
  1744.                This retrieval must be an unauthenticated request, since
  1745.                the management station does not know if the clocks are
  1746.                synchronized.  If the request fails, the clocks cannot be
  1747.                synchronized, and the clock adjustment procedure is
  1748.                aborted without further processing.
  1749.  
  1750.           (3)  If the notion of the authentication clock for mgrParty
  1751.                just retrieved from the agent exceeds the management
  1752.                station's notion, then condition 4 is manifest, and the
  1753.                responsible management station advances its notion of the
  1754.                authentication clock for mgrParty to match the agent's
  1755.                notion.
  1756.  
  1757.           (4)  The responsible management station retrieves the
  1758.                authentication clock value for mgrParty from the agent.
  1759.                This retrieval must be an authenticated request, in order
  1760.                that the management station may verify that the clock
  1761.                value is properly synchronized.  If this authenticated
  1762.                query fails, then the management station restores its
  1763.  
  1764.  
  1765.  
  1766.  
  1767.  
  1768.                               Expires July 26, 1993            [Page 30]
  1769.  
  1770.  
  1771.  
  1772.  
  1773.  
  1774.           Draft           Security Protocols for SNMPv2           Jan 93
  1775.  
  1776.  
  1777.                previously saved notion of the clock value, and the clock
  1778.                adjustment procedure is aborted without further
  1779.                processing.  Otherwise, clock synchronization has been
  1780.                successfully realized.
  1781.  
  1782.           Administrative advancement of a clock as described above does
  1783.           not introduce any new vulnerabilities, since the value of the
  1784.           clock is intended to increase with the passage of time.  A
  1785.           potential operational problem is the rejection of authentic
  1786.           management operations that were authenticated using a previous
  1787.           value of the relevant party clock.  This possibility may be
  1788.           avoided if a management station suppresses generation of
  1789.           management traffic between relevant parties while this clock
  1790.           adjustment procedure is in progress.
  1791.  
  1792.  
  1793.           5.4.  Secret Distribution
  1794.  
  1795.           This section describes one strategy by which a SNMPv2 entity
  1796.           that supports both the Digest Authentication Protocol and the
  1797.           Symmetric Privacy Protocol can change the secrets for a
  1798.           particular SNMPv2 party.
  1799.  
  1800.           The frequency with which the secrets of a SNMPv2 party should
  1801.           be changed is a local administrative issue.  However, the more
  1802.           frequently a secret is used, the more frequently it should be
  1803.           changed.  At a minimum, the secrets must be changed whenever
  1804.           the associated authentication clock approaches its maximal
  1805.           value (see Section 6).  Note that, owing to both
  1806.           administrative and automatic advances of the authentication
  1807.           clock described in this memo, the authentication clock for a
  1808.           SNMPv2 party may well approach its maximal value sooner than
  1809.           might otherwise be expected.
  1810.  
  1811.           The following sequence of steps specifies how a responsible
  1812.           management station alters a secret value (i.e., the private
  1813.           authentication key or the private privacy key) for a
  1814.           particular SNMPv2 party.  There are two cases.
  1815.  
  1816.           First, setting the initial secret for a new party:
  1817.  
  1818.           (1)  The responsible management station generates a new secret
  1819.                value.
  1820.  
  1821.  
  1822.  
  1823.  
  1824.  
  1825.  
  1826.  
  1827.                               Expires July 26, 1993            [Page 31]
  1828.  
  1829.  
  1830.  
  1831.  
  1832.  
  1833.           Draft           Security Protocols for SNMPv2           Jan 93
  1834.  
  1835.  
  1836.           (2)  The responsible management station encapsulates a SNMPv2
  1837.                setRequest in a SNMPv2 private management communication
  1838.                with at least the following properties.
  1839.  
  1840.                     Its source supports the Digest Authentication
  1841.                     Protocol and the Symmetric Privacy Protocol.
  1842.  
  1843.                     Its destination supports the Symmetric Privacy
  1844.                     Protocol and the Digest Authentication Protocol.
  1845.  
  1846.           (3)  The SNMPv2 private management communication is
  1847.                transmitted to its destination.
  1848.  
  1849.           (4)  Upon receiving the request, the recipient processes the
  1850.                message according to [12] and [1].
  1851.  
  1852.           (5)  The recipient encapsulates a SNMPv2 response in a SNMPv2
  1853.                private management communication with at least the
  1854.                following properties.
  1855.  
  1856.                     Its source supports the Digest Authentication
  1857.                     Protocol and the Symmetric Privacy Protocol.
  1858.  
  1859.                     Its destination supports the Symmetric Privacy
  1860.                     Protocol and the Digest Authentication Protocol.
  1861.  
  1862.           (6)  The SNMPv2 private management communication is
  1863.                transmitted to its destination.
  1864.  
  1865.           (7)  Upon receiving the response, the responsible management
  1866.                station updates its local database with the new value.
  1867.  
  1868.           Second, modifying the current secret of an existing party:
  1869.  
  1870.           (1)  The responsible management station generates a new secret
  1871.                value.
  1872.  
  1873.           (2)  The responsible management station encapsulates a SNMPv2
  1874.                setRequest in a SNMPv2 management communication with at
  1875.                least the following properties.
  1876.  
  1877.                     Its source and destination supports the Digest
  1878.                     Authentication Protocol.
  1879.  
  1880.  
  1881.  
  1882.  
  1883.  
  1884.  
  1885.  
  1886.                               Expires July 26, 1993            [Page 32]
  1887.  
  1888.  
  1889.  
  1890.  
  1891.  
  1892.           Draft           Security Protocols for SNMPv2           Jan 93
  1893.  
  1894.  
  1895.           (3)  The SNMPv2 private management communication is
  1896.                transmitted to its destination.
  1897.  
  1898.           (4)  Upon receiving the request, the recipient processes the
  1899.                message according to [12] and [1].
  1900.  
  1901.           (5)  The recipient encapsulates a SNMPv2 response in a SNMPv2
  1902.                management communication with at least the following
  1903.                properties.
  1904.  
  1905.                     Its source and destination supports the Digest
  1906.                     Authentication Protocol.
  1907.  
  1908.           (6)  The SNMPv2 management communication is transmitted to its
  1909.                destination.
  1910.  
  1911.           (7)  Upon receiving the response, the responsible management
  1912.                station updates its local database with the new value.
  1913.  
  1914.           If the responsible management station does not receive a
  1915.           response to its request, there are two possible causes.
  1916.  
  1917.           o    The request may not have been delivered to the
  1918.                destination.
  1919.  
  1920.           o    The response may not have been delivered to the
  1921.                originator of the request.
  1922.  
  1923.           In order to distinguish the two possible error conditions, a
  1924.           responsible management station could check the destination to
  1925.           see if the change has occurred.  Unfortunately, since the
  1926.           secret values are unreadable, this is not directly possible.
  1927.  
  1928.           The recommended strategy for verifying key changes is to set
  1929.           the public value corresponding to the secret being changed to
  1930.           a recognizable, novel value: that is, alter the public
  1931.           authentication key value for the relevant party when changing
  1932.           its private authentication key, or alter its public privacy
  1933.           key value when changing its private privacy key.  In this way,
  1934.           the responsible management station may retrieve the public
  1935.           value when a response is not received, and verify whether or
  1936.           not the change has taken place.  (This strategy is available
  1937.           since the public values are not used by the protocols defined
  1938.           in this memo.  If this strategy is employed, then the public
  1939.           values are significant in this context.  Of course, protocols
  1940.  
  1941.  
  1942.  
  1943.  
  1944.  
  1945.                               Expires July 26, 1993            [Page 33]
  1946.  
  1947.  
  1948.  
  1949.  
  1950.  
  1951.           Draft           Security Protocols for SNMPv2           Jan 93
  1952.  
  1953.  
  1954.           using the public values may make use of this strategy
  1955.           directly.)
  1956.  
  1957.           One other scenario worthy of mention is using a SNMPv2 party
  1958.           to change its own secrets.  In this case, the destination will
  1959.           change its local database prior to generating a response.
  1960.           Thus, the response will be constructed according to the new
  1961.           value.  However, the responsible management station will not
  1962.           update its local database until after the response is
  1963.           received.  This suggests the responsible management station
  1964.           may receive a response which will be evaluated as unauthentic,
  1965.           unless the correct secret is used.  The responsible management
  1966.           station may either account for this scenario as a special
  1967.           case, or use an alteration of the relevant public values (as
  1968.           described above) to verify the key change.
  1969.  
  1970.           Note, during the period of time after the request has been
  1971.           sent and before the response is received, the management
  1972.           station must keep track of both the old and new secret values.
  1973.           Since the delay may be the result of a network failure, the
  1974.           management station must be prepared to retain both values for
  1975.           an extended period of time, including across reboots.
  1976.  
  1977.  
  1978.           5.5.  Crash Recovery
  1979.  
  1980.           This section describes the requirements for SNMPv2 protocol
  1981.           entities in connection with recovery from system crashes or
  1982.           other service interruptions.
  1983.  
  1984.           For each SNMPv2 party in the local database for a particular
  1985.           SNMPv2 entity, its identity, authentication clock, private
  1986.           authentication key, and private privacy key must enjoy non-
  1987.           volatile, incorruptible representations.  If possible,
  1988.           lifetime should also enjoy a non-volatile, incorruptible
  1989.           representation.  If said SNMPv2 entity supports other security
  1990.           protocols or algorithms in addition to the two defined in this
  1991.           memo, then the authentication protocol and the privacy
  1992.           protocol for each party also require non-volatile,
  1993.           incorruptible representation.
  1994.  
  1995.           The authentication clock of a SNMPv2 party is a critical
  1996.           component of the overall security of the protocols.  The
  1997.           inclusion of a reliable representation of a clock in a SNMPv2
  1998.           entity is required for overall security.  A reliable clock
  1999.  
  2000.  
  2001.  
  2002.  
  2003.  
  2004.                               Expires July 26, 1993            [Page 34]
  2005.  
  2006.  
  2007.  
  2008.  
  2009.  
  2010.           Draft           Security Protocols for SNMPv2           Jan 93
  2011.  
  2012.  
  2013.           representation ensures that a clock's value is monotonically
  2014.           increasing, even across a power loss or other system failure
  2015.           of the local SNMPv2 entity.  One example of a reliable clock
  2016.           representation is that provided by battery-powered clock-
  2017.           calendar devices incorporated into some contemporary systems.
  2018.           Another example is storing and updating a clock value in non-
  2019.           volatile storage at a frequency of once per U (e.g., 24)
  2020.           hours, and re-initialising that clock value on every reboot as
  2021.           the stored value plus U+1 hours.  It is assumed that
  2022.           management stations always support reliable clock
  2023.           representations, where clock adjustment by a human operator
  2024.           during crash recovery may contribute to that reliability.
  2025.  
  2026.           If a managed agent crashes and does not reboot in time for its
  2027.           responsible management station to prevent its authentication
  2028.           clock from reaching its maximal value, upon reboot the clock
  2029.           must be halted at its maximal value.  The procedures specified
  2030.           in Section 5.3 would then apply.
  2031.  
  2032.           Upon recovery, those attributes of each SNMPv2 party that do
  2033.           not enjoy non-volatile or reliable representation are
  2034.           initialized as follows.
  2035.  
  2036.           o    If the private authentication key is not the OCTET STRING
  2037.                of zero length, the authentication protocol is set to
  2038.                identify use of the Digest Authentication Protocol in
  2039.                conjunction with the algorithm specified in Section
  2040.                1.5.1.
  2041.  
  2042.           o    If the lifetime is not retained, it should be initialized
  2043.                to zero.
  2044.  
  2045.           o    If the private privacy key is not the OCTET STRING of
  2046.                zero length, the privacy protocol is set to identify use
  2047.                of the Symmetric Privacy Protocol in conjunction with the
  2048.                algorithm specified in Section 1.5.2.
  2049.  
  2050.           Upon detecting that a managed agent has rebooted, a
  2051.           responsible management station must reset all other party
  2052.           attributes, including the lifetime if it was not retained.  In
  2053.           order to reset the lifetime, the responsible management
  2054.           station should set the authentication timestamp in the message
  2055.           to the sum of the authentication clock and desired lifetime.
  2056.           This is an artificial advancement of the authentication
  2057.           timestamp in order to guarantee the message will be authentic
  2058.  
  2059.  
  2060.  
  2061.  
  2062.  
  2063.                               Expires July 26, 1993            [Page 35]
  2064.  
  2065.  
  2066.  
  2067.  
  2068.  
  2069.           Draft           Security Protocols for SNMPv2           Jan 93
  2070.  
  2071.  
  2072.           when received by the recipient.
  2073.  
  2074.  
  2075.  
  2076.  
  2077.  
  2078.  
  2079.  
  2080.  
  2081.  
  2082.  
  2083.  
  2084.  
  2085.  
  2086.  
  2087.  
  2088.  
  2089.  
  2090.  
  2091.  
  2092.  
  2093.  
  2094.  
  2095.  
  2096.  
  2097.  
  2098.  
  2099.  
  2100.  
  2101.  
  2102.  
  2103.  
  2104.  
  2105.  
  2106.  
  2107.  
  2108.  
  2109.  
  2110.  
  2111.  
  2112.  
  2113.  
  2114.  
  2115.  
  2116.  
  2117.  
  2118.  
  2119.  
  2120.  
  2121.  
  2122.                               Expires July 26, 1993            [Page 36]
  2123.  
  2124.  
  2125.  
  2126.  
  2127.  
  2128.           Draft           Security Protocols for SNMPv2           Jan 93
  2129.  
  2130.  
  2131.           6.  Security Considerations
  2132.  
  2133.           This section highlights security considerations relevant to
  2134.           the protocols and procedures defined in this memo.  Practices
  2135.           that contribute to secure, effective operation of the
  2136.           mechanisms defined here are described first.  Constraints on
  2137.           implementation behavior that are necessary to the security of
  2138.           the system are presented next.  Finally, an informal account
  2139.           of the contribution of each mechanism of the protocols to the
  2140.           required goals is presented.
  2141.  
  2142.  
  2143.           6.1.  Recommended Practices
  2144.  
  2145.           This section describes practices that contribute to the
  2146.           secure, effective operation of the mechanisms defined in this
  2147.           memo.
  2148.  
  2149.           o    A management station should discard SNMPv2 responses for
  2150.                which neither the request-id component nor the
  2151.                represented management information corresponds to any
  2152.                currently outstanding request.
  2153.  
  2154.                Although it would be typical for a management station to
  2155.                do this as a matter of course, in the context of these
  2156.                security protocols it is significant owing to the
  2157.                possibility of message duplication (malicious or
  2158.                otherwise).
  2159.  
  2160.           o    A management station should not interpret an agent's lack
  2161.                of response to an authenticated SNMPv2 management
  2162.                communication as a conclusive indication of agent or
  2163.                network failure.
  2164.  
  2165.                It is possible for authentication failure traps to be
  2166.                lost or suppressed as a result of authentication clock
  2167.                skew or inconsistent notions of shared secrets.  In order
  2168.                either to facilitate administration of such SNMPv2
  2169.                parties or to provide for continued management in times
  2170.                of network stress, a management station implementation
  2171.                may provide for arbitrary, artificial advancement of the
  2172.                timestamp or selection of shared secrets on locally
  2173.                generated messages.
  2174.  
  2175.  
  2176.  
  2177.  
  2178.  
  2179.  
  2180.  
  2181.                               Expires July 26, 1993            [Page 37]
  2182.  
  2183.  
  2184.  
  2185.  
  2186.  
  2187.           Draft           Security Protocols for SNMPv2           Jan 93
  2188.  
  2189.  
  2190.           o    The lifetime value for a SNMPv2 party should be chosen
  2191.                (by the local administration) to be as small as possible,
  2192.                given the accuracy of clock devices available, relevant
  2193.                round-trip communications delays, and the frequency with
  2194.                which a responsible management station will be able to
  2195.                verify all clock values.
  2196.  
  2197.                A large lifetime increases the vulnerability to malicious
  2198.                delays of SNMPv2 messages.  The implementation of a        |
  2199.                management station may accommodate changing network        |
  2200.                conditions during periods of network stress by             |
  2201.                effectively increasing the lifetimes of the source and     |
  2202.                destination parties.  The management station accomplishes  |
  2203.                this by artificially advancing its notion of the source    |
  2204.                party's clock on messages it sends, and by artificially    |
  2205.                increasing its notion of the source party`s lifetime on    |
  2206.                messages it receives.                                      |
  2207.  
  2208.           o    When sending state altering messages to a managed agent,
  2209.                a management station should delay sending successive
  2210.                messages to the managed agent until a positive
  2211.                acknowledgement is received for the previous message or
  2212.                until the previous message expires.
  2213.  
  2214.                No message ordering is imposed by the SNMPv2.  Messages
  2215.                may be received in any order relative to their time of
  2216.                generation and each will be processed in the ordered
  2217.                received.  Note that when an authenticated message is
  2218.                sent to a managed agent, it will be valid for a period of
  2219.                time that does not exceed lifetime under normal
  2220.                circumstances, and is subject to replay during this
  2221.                period.
  2222.  
  2223.                Indeed, a management station must cope with the loss and
  2224.                re-ordering of messages resulting from anomalies in the
  2225.                network as a matter of course.
  2226.  
  2227.                However, a managed object, snmpSetSerialNo [14], is
  2228.                specifically defined for use with SNMPv2 set operations
  2229.                in order to provide a mechanism to ensure the processing
  2230.                of SNMPv2 messages occurs in a specific order.
  2231.  
  2232.           o    The frequency with which the secrets of a SNMPv2 party
  2233.                should be changed is indirectly related to the frequency
  2234.                of their use.
  2235.  
  2236.  
  2237.  
  2238.  
  2239.  
  2240.                               Expires July 26, 1993            [Page 38]
  2241.  
  2242.  
  2243.  
  2244.  
  2245.  
  2246.           Draft           Security Protocols for SNMPv2           Jan 93
  2247.  
  2248.  
  2249.                Protecting the secrets from disclosure is critical to the
  2250.                overall security of the protocols.  Frequent use of a
  2251.                secret provides a continued source of data that may be
  2252.                useful to a cryptanalyst in exploiting known or perceived
  2253.                weaknesses in an algorithm.  Frequent changes to the
  2254.                secret avoid this vulnerability.
  2255.  
  2256.                Changing a secret after each use is is generally regarded
  2257.                as the most secure practice, but a significant amount of
  2258.                overhead may be associated with that approach.
  2259.  
  2260.                Note, too, in a local environment the threat of
  2261.                disclosure may be insignificant, and as such the changing
  2262.                of secrets may be less frequent.  However, when public
  2263.                data networks are the communication paths, more caution
  2264.                is prudent.
  2265.  
  2266.           o    In order to foster the greatest degree of security, a
  2267.                management station implementation must support
  2268.                constrained, pairwise sharing of secrets among SNMPv2
  2269.                entities as its default mode of operation.
  2270.  
  2271.                Owing to the use of symmetric cryptography in the
  2272.                protocols defined here, the secrets associated with a
  2273.                particular SNMPv2 party must be known to all other SNMPv2
  2274.                parties with which that party may wish to communicate.
  2275.                As the number of locations at which secrets are known and
  2276.                used increases, the likelihood of their disclosure also
  2277.                increases, as does the potential impact of that
  2278.                disclosure.  Moreover, if the set of SNMPv2 protocol
  2279.                entities with knowledge of a particular secret numbers
  2280.                more than two, data origin cannot be reliably
  2281.                authenticated because it is impossible to determine with
  2282.                any assurance which entity of that set may be the
  2283.                originator of a particular SNMPv2 message.  Thus, the
  2284.                greatest degree of security is afforded by configurations
  2285.                in which the secrets for each SNMPv2 party are known to
  2286.                at most two protocol entities.
  2287.  
  2288.  
  2289.           6.2.  Conformance
  2290.  
  2291.           A SNMPv2 entity implementation that claims conformance to this
  2292.           memo must satisfy the following requirements:
  2293.  
  2294.  
  2295.  
  2296.  
  2297.  
  2298.  
  2299.                               Expires July 26, 1993            [Page 39]
  2300.  
  2301.  
  2302.  
  2303.  
  2304.  
  2305.           Draft           Security Protocols for SNMPv2           Jan 93
  2306.  
  2307.  
  2308.           (1)  It must implement the noAuth and noPriv protocols whose
  2309.                object identifiers are defined in [4].
  2310.  
  2311.                     noAuth  This protocol signifies that messages
  2312.                     generated by a party using it are not protected as
  2313.                     to origin or integrity.  It is required to ensure
  2314.                     that a party's authentication clock is always
  2315.                     accessible.
  2316.  
  2317.                     noPriv  This protocol signifies that messages
  2318.                     received by a party using it are not protected from
  2319.                     disclosure.  It is required to ensure that a party's
  2320.                     authentication clock is always accessible.
  2321.  
  2322.           (2)  It must implement the Digest Authentication Protocol in
  2323.                conjunction with the algorithm defined in Section 1.5.1.
  2324.  
  2325.           (3)  It must include in its local database at least one SNMPv2
  2326.                party with the following parameters set as follows:
  2327.  
  2328.                     partyAuthProtocol is set to noAuth and
  2329.  
  2330.                     partyPrivProtocol is set to noPriv.
  2331.  
  2332.                This party must have a MIB view [1] specified that
  2333.                includes at least the authentication clock of all other
  2334.                parties.  Alternatively, the authentication clocks of the
  2335.                other parties may be partitioned among several similarly
  2336.                configured parties according to a local implementation
  2337.                convention.
  2338.  
  2339.           (4)  For each SNMPv2 party about which it maintains
  2340.                information in a local database, an implementation must
  2341.                satisfy the following requirements:
  2342.  
  2343.                     (a) It must not allow a party's parameters to be set
  2344.                     to a value inconsistent with its expected syntax.
  2345.                     In particular, Section 1.4 specifies constraints for
  2346.                     the chosen mechanisms.
  2347.  
  2348.                     (b) It must, to the maximal extent possible,
  2349.                     prohibit read-access to the private authentication
  2350.                     key and private encryption key under all
  2351.                     circumstances except as required to generate and/or
  2352.                     validate SNMPv2 messages with respect to that party.
  2353.  
  2354.  
  2355.  
  2356.  
  2357.  
  2358.                               Expires July 26, 1993            [Page 40]
  2359.  
  2360.  
  2361.  
  2362.  
  2363.  
  2364.           Draft           Security Protocols for SNMPv2           Jan 93
  2365.  
  2366.  
  2367.                     This prohibition includes prevention of read-access
  2368.                     by the entity's human operators.
  2369.  
  2370.                     (c) It must allow the party's authentication clock
  2371.                     to be publicly accessible.  The correct operation of
  2372.                     the Digest Authentication Protocol requires that it
  2373.                     be possible to determine this value at all times in
  2374.                     order to guarantee that skewed authentication clocks
  2375.                     can be resynchronized.
  2376.  
  2377.                     (d) It must prohibit alterations to its record of
  2378.                     the authentication clock for that party
  2379.                     independently of alterations to its record of the
  2380.                     private authentication key (unless the clock
  2381.                     alteration is an advancement).
  2382.  
  2383.                     (e) It must never allow its record of the
  2384.                     authentication clock for that party to be
  2385.                     incremented beyond the maximal time value and so
  2386.                     "roll-over" to zero.
  2387.  
  2388.                     (f) It must never increase its record of the
  2389.                     lifetime for that party except as may be explicitly
  2390.                     authorized (via imperative command or securely
  2391.                     represented configuration information) by the
  2392.                     responsible network administrator.
  2393.  
  2394.                     (g) In the event that the non-volatile,
  2395.                     incorruptible representations of a party's
  2396.                     parameters (in particular, either the private
  2397.                     authentication key or private encryption key) are
  2398.                     lost or destroyed, it must alter its record of these
  2399.                     quantities to random values so subsequent
  2400.                     interaction with that party requires manual
  2401.                     redistribution of new secrets and other parameters.
  2402.  
  2403.           (5)  If it selects new value(s) for a party's secret(s), it
  2404.                must avoid bad or obvious choices for said secret(s).
  2405.                Choices to be avoided are boundary values (such as all-
  2406.                zeros) and predictable values (such as the same value as
  2407.                previously or selecting from a predetermined set).
  2408.  
  2409.           (6)  It must ensure that a received message for which the
  2410.                originating party uses the Digest Authentication Protocol
  2411.                but the receiving party does not, is always declared to
  2412.  
  2413.  
  2414.  
  2415.  
  2416.  
  2417.                               Expires July 26, 1993            [Page 41]
  2418.  
  2419.  
  2420.  
  2421.  
  2422.  
  2423.           Draft           Security Protocols for SNMPv2           Jan 93
  2424.  
  2425.  
  2426.                be unauthentic.  This may be achieved explicitly via an
  2427.                additional step in the procedure for processing a
  2428.                received message, or implicitly by verifying that all
  2429.                local access control policies enforce this requirement.
  2430.  
  2431.  
  2432.           6.3.  Protocol Correctness
  2433.  
  2434.           The correctness of these SNMPv2 security protocols with
  2435.           respect to the stated goals depends on the following
  2436.           assumptions:
  2437.  
  2438.           (1)  The chosen message digest algorithm satisfies its design
  2439.                criteria.  In particular, it must be computationally
  2440.                infeasible to discover two messages that share the same
  2441.                digest value.
  2442.  
  2443.           (2)  It is computationally infeasible to determine the secret
  2444.                used in calculating a digest on the concatenation of the
  2445.                secret and a message when both the digest and the message
  2446.                are known.
  2447.  
  2448.           (3)  The chosen symmetric encryption algorithm satisfies its
  2449.                design criteria.  In particular, it must be
  2450.                computationally infeasible to determine the cleartext
  2451.                message from the ciphertext message without knowledge of
  2452.                the key used in the transformation.
  2453.  
  2454.           (4)  Local notions of a party's authentication clock while it
  2455.                is associated with a specific private key value are
  2456.                monotonically non-decreasing (i.e., they never run
  2457.                backwards) in the absence of administrative
  2458.                manipulations.
  2459.  
  2460.           (5)  The secrets for a particular SNMPv2 party are known only
  2461.                to authorized SNMPv2 protocol entities.
  2462.  
  2463.           (6)  Local notions of the authentication clock for a
  2464.                particular SNMPv2 party are never altered such that the
  2465.                authentication clock's new value is less than the current
  2466.                value without also altering the private authentication
  2467.                key.
  2468.  
  2469.           For each mechanism of the protocol, an informal account of its
  2470.           contribution to the required goals is presented below.
  2471.  
  2472.  
  2473.  
  2474.  
  2475.  
  2476.                               Expires July 26, 1993            [Page 42]
  2477.  
  2478.  
  2479.  
  2480.  
  2481.  
  2482.           Draft           Security Protocols for SNMPv2           Jan 93
  2483.  
  2484.  
  2485.           Pseudocode fragments are provided where appropriate to
  2486.           exemplify possible implementations; they are intended to be
  2487.           self-explanatory.
  2488.  
  2489.  
  2490.           6.3.1.  Clock Monotonicity Mechanism
  2491.  
  2492.           By pairing each sequence of a clock's values with a unique
  2493.           key, the protocols partially realize goal 3, and the
  2494.           conjunction of this property with assumption 6 above is
  2495.           sufficient for the claim that, with respect to a specific
  2496.           private key value, all local notions of a party's
  2497.           authentication clock are, in general, non-decreasing with
  2498.           time.
  2499.  
  2500.  
  2501.           6.3.2.  Data Integrity Mechanism
  2502.  
  2503.           The protocols require computation of a message digest computed
  2504.           over the SNMPv2 message prepended by the secret for the
  2505.           relevant party.  By virtue of this mechanism and assumptions 1
  2506.           and 2, the protocols realize goal 1.
  2507.  
  2508.           Normally, the inclusion of the message digest value with the
  2509.           digested message would not be sufficient to guarantee data
  2510.           integrity, since the digest value can be modified in addition
  2511.           to the message while it is enroute.  However, since not all of
  2512.           the digested message is included in the transmission to the
  2513.           destination, it is not possible to substitute both a message
  2514.           and a digest value while enroute to a destination.
  2515.  
  2516.           Strictly speaking, the specified strategy for data integrity
  2517.           does not detect a SNMPv2 message modification which appends
  2518.           extraneous material to the end of such messages.  However,
  2519.           owing to the representation of SNMPv2 messages as ASN.1
  2520.           values, such modifications cannot - consistent with goal 1 -
  2521.           result in unauthorized management operations.
  2522.  
  2523.           The data integrity mechanism specified in this memo protects
  2524.           only against unauthorized modification of individual SNMPv2
  2525.           messages.  A more general data integrity service that affords
  2526.           protection against the threat of message stream modification
  2527.           is not realized by this mechanism, although limited protection
  2528.           against reordering, delay, and duplication of messages within
  2529.           a message stream are provided by other mechanisms of the
  2530.  
  2531.  
  2532.  
  2533.  
  2534.  
  2535.                               Expires July 26, 1993            [Page 43]
  2536.  
  2537.  
  2538.  
  2539.  
  2540.  
  2541.           Draft           Security Protocols for SNMPv2           Jan 93
  2542.  
  2543.  
  2544.           protocol.
  2545.  
  2546.  
  2547.           6.3.3.  Data Origin Authentication Mechanism
  2548.  
  2549.           The data integrity mechanism requires the use of a secret
  2550.           value known only to communicating parties.  By virtue of this
  2551.           mechanism and assumptions 1 and 2, the protocols explicitly
  2552.           prevent unauthorized modification of messages.  Data origin
  2553.           authentication is implicit if the message digest value can be
  2554.           verified.  That is, the protocols realize goal 2.
  2555.  
  2556.  
  2557.           6.3.4.  Restricted Administration Mechanism
  2558.  
  2559.           This memo requires that implementations preclude
  2560.           administrative alterations of the authentication clock for a
  2561.           particular party independently from its private authentication
  2562.           key (unless that clock alteration is an advancement).  An
  2563.           example of an efficient implementation of this restriction is
  2564.           provided in a pseudocode fragment below.  This pseudocode
  2565.           fragment meets the requirements of assumption 6.  Observe that
  2566.           the requirement is not for simultaneous alteration but to
  2567.           preclude independent alteration.  This latter requirement is
  2568.           fairly easily realized in a way that is consistent with the
  2569.           defined semantics of the SNMPv2 set operation.
  2570.  
  2571.  
  2572.  
  2573.  
  2574.  
  2575.  
  2576.  
  2577.  
  2578.  
  2579.  
  2580.  
  2581.  
  2582.  
  2583.  
  2584.  
  2585.  
  2586.  
  2587.  
  2588.  
  2589.  
  2590.  
  2591.  
  2592.  
  2593.  
  2594.                               Expires July 26, 1993            [Page 44]
  2595.  
  2596.  
  2597.  
  2598.  
  2599.  
  2600.           Draft           Security Protocols for SNMPv2           Jan 93
  2601.  
  2602.  
  2603.                Void partySetKey (party, newKeyValue)
  2604.                {
  2605.                    if (party->clockAltered) {
  2606.                       party->clockAltered = FALSE;
  2607.                       party->keyAltered = FALSE;
  2608.                       party->keyInUse = newKeyValue;
  2609.                       party->clockInUse = party->clockCache;
  2610.                    }
  2611.                    else {
  2612.                       party->keyAltered = TRUE;
  2613.                       party->keyCache = newKeyValue;
  2614.                    }
  2615.                }
  2616.  
  2617.                Void partySetClock (party, newClockValue)
  2618.                {
  2619.                    if (party->keyAltered) {
  2620.                       party->keyAltered = FALSE;
  2621.                       party->clockAltered = FALSE;
  2622.                       party->clockInUse = newClockValue;
  2623.                       party->keyInUse = party->keyCache;
  2624.                    }
  2625.                    else {
  2626.                       party->clockAltered = TRUE;
  2627.                       party->clockCache = newClockValue;
  2628.                    }
  2629.                }
  2630.  
  2631.  
  2632.           6.3.5.  Message Timeliness Mechanism
  2633.  
  2634.           The definition of the SNMPv2 security protocols requires that,
  2635.           if the authentication timestamp value on a received message -
  2636.           augmented by an administratively chosen lifetime value - is
  2637.           less than the local notion of the clock for the originating
  2638.           SNMPv2 party, the message is not delivered.
  2639.  
  2640.  
  2641.                if (timestampOfReceivedMsg +
  2642.                       party->administrativeLifetime <=
  2643.                       party->localNotionOfClock) {
  2644.                       msgIsValidated = FALSE;
  2645.                }
  2646.  
  2647.  
  2648.  
  2649.  
  2650.  
  2651.  
  2652.  
  2653.                               Expires July 26, 1993            [Page 45]
  2654.  
  2655.  
  2656.  
  2657.  
  2658.  
  2659.           Draft           Security Protocols for SNMPv2           Jan 93
  2660.  
  2661.  
  2662.           By virtue of this mechanism, the protocols realize goal 3.  In
  2663.           cases in which the local notions of a particular SNMPv2 party
  2664.           clock are moderately well-synchronized, the timeliness
  2665.           mechanism effectively limits the age of validly delivered
  2666.           messages.  Thus, if an attacker diverts all validated messages
  2667.           for replay much later, the delay introduced by this attack is
  2668.           limited to a period that is proportional to the skew among
  2669.           local notions of the party clock.
  2670.  
  2671.  
  2672.           6.3.6.  Selective Clock Acceleration Mechanism
  2673.  
  2674.           The definition of the SNMPv2 security protocols requires that,
  2675.           if either of the timestamp values for the originating or
  2676.           receiving parties on a received, validated message exceeds the
  2677.           corresponding local notion of the clock for that party, then
  2678.           the local notion of the clock for that party is adjusted
  2679.           forward to correspond to said timestamp value.  This mechanism
  2680.           is neither strictly necessary nor sufficient to the security
  2681.           of the protocol; rather, it fosters the clock synchronization
  2682.           on which valid message delivery depends - thereby enhancing
  2683.           the effectiveness of the protocol in a management context.
  2684.  
  2685.  
  2686.                if (msgIsValidated) {
  2687.                       if (timestampOfReceivedMsg >
  2688.                             party->localNotionOfClock) {
  2689.                             party->localNotionOfClock =
  2690.                                   timestampOfReceivedMsg;
  2691.                       }
  2692.                }
  2693.  
  2694.  
  2695.           The effect of this mechanism is to synchronize local notions
  2696.           of a party clock more closely in the case where a sender's
  2697.           notion is more advanced than a receiver's.  In the opposite
  2698.           case, this mechanism has no effect on local notions of a party
  2699.           clock and either the received message is validly delivered or
  2700.           not according to other mechanisms of the protocol.
  2701.  
  2702.           Operation of this mechanism does not, in general, improve the
  2703.           probability of validated delivery for messages generated by
  2704.           party participants whose local notion of the party clock is
  2705.           relatively less advanced.  In this case, queries from a
  2706.           management station may not be validly delivered and the
  2707.  
  2708.  
  2709.  
  2710.  
  2711.  
  2712.                               Expires July 26, 1993            [Page 46]
  2713.  
  2714.  
  2715.  
  2716.  
  2717.  
  2718.           Draft           Security Protocols for SNMPv2           Jan 93
  2719.  
  2720.  
  2721.           management station needs to react appropriately (e.g., by use
  2722.           of the strategy described in section 5.3).  In contrast, the
  2723.           delivery of SNMPv2 trap messages generated by an agent that
  2724.           suffers from a less advanced notion of a party clock is more
  2725.           problematic, for an agent may lack the capacity to recognize
  2726.           and react to security failures that prevent delivery of its
  2727.           messages.  Thus, the inherently unreliable character of trap
  2728.           messages is likely to be compounded by attempts to provide for
  2729.           their validated delivery.
  2730.  
  2731.  
  2732.           6.3.7.  Confidentiality Mechanism
  2733.  
  2734.           The protocols require the use of a symmetric encryption
  2735.           algorithm when the data confidentiality service is required.
  2736.           By virtue of this mechanism and assumption 3, the protocols
  2737.           realize goal 4.
  2738.  
  2739.  
  2740.  
  2741.  
  2742.  
  2743.  
  2744.  
  2745.  
  2746.  
  2747.  
  2748.  
  2749.  
  2750.  
  2751.  
  2752.  
  2753.  
  2754.  
  2755.  
  2756.  
  2757.  
  2758.  
  2759.  
  2760.  
  2761.  
  2762.  
  2763.  
  2764.  
  2765.  
  2766.  
  2767.  
  2768.  
  2769.  
  2770.  
  2771.                               Expires July 26, 1993            [Page 47]
  2772.  
  2773.  
  2774.  
  2775.  
  2776.  
  2777.           Draft           Security Protocols for SNMPv2           Jan 93
  2778.  
  2779.  
  2780.           7.  Acknowledgements
  2781.  
  2782.           This document is based, almost entirely, on RFC 1352.
  2783.  
  2784.  
  2785.  
  2786.  
  2787.  
  2788.  
  2789.  
  2790.  
  2791.  
  2792.  
  2793.  
  2794.  
  2795.  
  2796.  
  2797.  
  2798.  
  2799.  
  2800.  
  2801.  
  2802.  
  2803.  
  2804.  
  2805.  
  2806.  
  2807.  
  2808.  
  2809.  
  2810.  
  2811.  
  2812.  
  2813.  
  2814.  
  2815.  
  2816.  
  2817.  
  2818.  
  2819.  
  2820.  
  2821.  
  2822.  
  2823.  
  2824.  
  2825.  
  2826.  
  2827.  
  2828.  
  2829.  
  2830.                               Expires July 26, 1993            [Page 48]
  2831.  
  2832.  
  2833.  
  2834.  
  2835.  
  2836.           Draft           Security Protocols for SNMPv2           Jan 93
  2837.  
  2838.  
  2839.           8.  References
  2840.  
  2841.           [1]  J.R. Davin, J.M. Galvin, K. McCloghrie, Administrative
  2842.                Model for version 2 of the Simple Network Management
  2843.                Protocol (SNMPv2).  Internet-Draft, (January 26, 1993).    |
  2844.  
  2845.           [2]  J.D. Case, M.S. Fedor, M.L. Schoffstall, and J.R. Davin,
  2846.                Simple Network Management Protocol.  Request for Comments
  2847.                1157, (May, 1990).
  2848.  
  2849.           [3]  R.L. Rivest, The MD5 Message-Digest Algorithm, Request
  2850.                for Comments 1321, (April, 1992).
  2851.  
  2852.           [4]  K. McCloghrie, J.R. Davin, J.M. Galvin, Party MIB for
  2853.                version 2 of the Simple Network Management Protocol
  2854.                (SNMPv2).  Internet-Draft, (January 26, 1993).             |
  2855.  
  2856.           [5]  Data Encryption Standard, National Institute of Standards
  2857.                and Technology.  Federal Information Processing Standard
  2858.                (FIPS) Publication 46-1.  Supersedes FIPS Publication 46,
  2859.                (January, 1977; reaffirmed January, 1988).
  2860.  
  2861.           [6]  Data Encryption Algorithm, American National Standards
  2862.                Institute.  ANSI X3.92-1981, (December, 1980).
  2863.  
  2864.           [7]  DES Modes of Operation, National Institute of Standards
  2865.                and Technology.  Federal Information Processing Standard
  2866.                (FIPS) Publication 81, (December, 1980).
  2867.  
  2868.           [8]  Data Encryption Algorithm - Modes of Operation, American
  2869.                National Standards Institute.  ANSI X3.106-1983, (May
  2870.                1983).
  2871.  
  2872.           [9]  Guidelines for Implementing and Using the NBS Data
  2873.                Encryption Standard, National Institute of Standards and
  2874.                Technology.  Federal Information Processing Standard
  2875.                (FIPS) Publication 74, (April, 1981).
  2876.  
  2877.           [10] Validating the Correctness of Hardware Implementations of
  2878.                the NBS Data Encryption Standard, National Institute of
  2879.                Standards and Technology.  Special Publication 500-20.
  2880.  
  2881.           [11] Maintenance Testing for the Data Encryption Standard,
  2882.                National Institute of Standards and Technology.  Special
  2883.                Publication 500-61, (August, 1980).
  2884.  
  2885.  
  2886.  
  2887.  
  2888.  
  2889.                               Expires July 26, 1993            [Page 49]
  2890.  
  2891.  
  2892.  
  2893.  
  2894.  
  2895.           Draft           Security Protocols for SNMPv2           Jan 93
  2896.  
  2897.  
  2898.           [12] J.D. Case, K. McCloghrie, M.T. Rose, S.L. Waldbusser,
  2899.                Protocol Operations for version 2 of the Simple Network
  2900.                Management Protocol (SNMPv2).  Internet-Draft, (January    |
  2901.                26, 1993).                                                 |
  2902.  
  2903.           [13] J.D. Case, K. McCloghrie, M.T. Rose, S.L. Waldbusser,
  2904.                Transport Mappings for version 2 of the Simple Network
  2905.                Management Protocol (SNMPv2).  Internet-Draft, (January    |
  2906.                26, 1993).                                                 |
  2907.  
  2908.           [14] J.D. Case, K. McCloghrie, M.T. Rose, S.L. Waldbusser,
  2909.                Management Information Base for version 2 of the Simple
  2910.                Network Management Protocol (SNMPv2).  Internet-Draft,     |
  2911.                (January 26, 1993).                                        |
  2912.  
  2913.  
  2914.  
  2915.  
  2916.  
  2917.  
  2918.  
  2919.  
  2920.  
  2921.  
  2922.  
  2923.  
  2924.  
  2925.  
  2926.  
  2927.  
  2928.  
  2929.  
  2930.  
  2931.  
  2932.  
  2933.  
  2934.  
  2935.  
  2936.  
  2937.  
  2938.  
  2939.  
  2940.  
  2941.  
  2942.  
  2943.  
  2944.  
  2945.  
  2946.  
  2947.  
  2948.                               Expires July 26, 1993            [Page 50]
  2949.  
  2950.  
  2951.  
  2952.  
  2953.  
  2954.           Draft           Security Protocols for SNMPv2           Jan 93
  2955.  
  2956.  
  2957.           Table of Contents
  2958.  
  2959.  
  2960.           1 Introduction ..........................................    2
  2961.           1.1 A Note on Terminology ...............................    3
  2962.           1.2 Threats .............................................    4
  2963.           1.3 Goals and Constraints ...............................    5
  2964.           1.4 Security Services ...................................    6
  2965.           1.5 Mechanisms ..........................................    7
  2966.           1.5.1 Message Digest Algorithm ..........................    8
  2967.           1.5.2 Symmetric Encryption Algorithm ....................    9
  2968.           2 SNMPv2 Party ..........................................   11
  2969.           3 Digest Authentication Protocol ........................   14
  2970.           3.1 Generating a Message ................................   16
  2971.           3.2 Receiving a Message .................................   18
  2972.           4 Symmetric Privacy Protocol ............................   21
  2973.           4.1 Generating a Message ................................   21
  2974.           4.2 Receiving a Message .................................   22
  2975.           5 Clock and Secret Distribution .........................   24
  2976.           5.1 Initial Configuration ...............................   25
  2977.           5.2 Clock Distribution ..................................   28
  2978.           5.3 Clock Synchronization ...............................   29
  2979.           5.4 Secret Distribution .................................   31
  2980.           5.5 Crash Recovery ......................................   34
  2981.           6 Security Considerations ...............................   37
  2982.           6.1 Recommended Practices ...............................   37
  2983.           6.2 Conformance .........................................   39
  2984.           6.3 Protocol Correctness ................................   42
  2985.           6.3.1 Clock Monotonicity Mechanism ......................   43
  2986.           6.3.2 Data Integrity Mechanism ..........................   43
  2987.           6.3.3 Data Origin Authentication Mechanism ..............   44
  2988.           6.3.4 Restricted Administration Mechanism ...............   44
  2989.           6.3.5 Message Timeliness Mechanism ......................   45
  2990.           6.3.6 Selective Clock Acceleration Mechanism ............   46
  2991.           6.3.7 Confidentiality Mechanism .........................   47
  2992.           7 Acknowledgements ......................................   48
  2993.           8 References ............................................   49
  2994.  
  2995.  
  2996.  
  2997.  
  2998.  
  2999.  
  3000.  
  3001.  
  3002.  
  3003.  
  3004.  
  3005.  
  3006.  
  3007.                               Expires July 26, 1993            [Page 51]
  3008.  
  3009.